XMLParser

Inherits: Reference < Object

Low-level class for creating parsers for XML files.

Description

This class can serve as base to make custom XML parsers. Since XML is a very flexible standard, this interface is low-level so it can be applied to any possible schema.

Methods

int

get_attribute_count ( ) const

String

get_attribute_name ( int idx ) const

String

get_attribute_value ( int idx ) const

int

get_current_line ( ) const

String

get_named_attribute_value ( String name ) const

String

get_named_attribute_value_safe ( String name ) const

String

get_node_data ( ) const

String

get_node_name ( ) const

int

get_node_offset ( ) const

NodeType

get_node_type ( )

bool

has_attribute ( String name ) const

bool

is_empty ( ) const

Error

open ( String file )

Error

open_buffer ( PoolByteArray buffer )

Error

read ( )

Error

seek ( int position )

void

skip_section ( )


Enumerations

enum NodeType:

NodeType NODE_NONE = 0

There's no node (no file or buffer opened).

NodeType NODE_ELEMENT = 1

Element (tag).

NodeType NODE_ELEMENT_END = 2

End of element.

NodeType NODE_TEXT = 3

Text node.

NodeType NODE_COMMENT = 4

Comment node.

NodeType NODE_CDATA = 5

CDATA content.

NodeType NODE_UNKNOWN = 6

Unknown node.


Method Descriptions

int get_attribute_count ( ) const

Gets the amount of attributes in the current element.


String get_attribute_name ( int idx ) const

Gets the name of the attribute specified by the index in idx argument.


String get_attribute_value ( int idx ) const

Gets the value of the attribute specified by the index in idx argument.


int get_current_line ( ) const

Gets the current line in the parsed file (currently not implemented).


String get_named_attribute_value ( String name ) const

Gets the value of a certain attribute of the current element by name. This will raise an error if the element has no such attribute.


String get_named_attribute_value_safe ( String name ) const

Gets the value of a certain attribute of the current element by name. This will return an empty String if the attribute is not found.


String get_node_data ( ) const

Gets the contents of a text node. This will raise an error in any other type of node.


String get_node_name ( ) const

Gets the name of the current element node. This will raise an error if the current node type is neither NODE_ELEMENT nor NODE_ELEMENT_END.


int get_node_offset ( ) const

Gets the byte offset of the current node since the beginning of the file or buffer.


NodeType get_node_type ( )

Gets the type of the current node. Compare with NodeType constants.


bool has_attribute ( String name ) const

Check whether the current element has a certain attribute.


bool is_empty ( ) const

Check whether the current element is empty (this only works for completely empty tags, e.g. <element \>).


Error open ( String file )

Opens an XML file for parsing. This returns an error code.


Error open_buffer ( PoolByteArray buffer )

Opens an XML raw buffer for parsing. This returns an error code.


Error read ( )

Reads the next node of the file. This returns an error code.


Error seek ( int position )

Moves the buffer cursor to a certain offset (since the beginning) and read the next node there. This returns an error code.


void skip_section ( )

Skips the current section. If the node contains other elements, they will be ignored and the cursor will go to the closing of the current element.