XMLParser
Low-level class for creating parsers for files.
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.
enum NodeType:
- NODE_NONE = 0 —- There’s no node (no file or buffer opened).
- NODE_ELEMENT = 1 —- Element (tag).
- NODE_ELEMENT_END = 2 —- End of element.
- NODE_TEXT = 3 —- Text node.
- NODE_CDATA = 5 —- CDATA content.
- NODE_UNKNOWN = 6 —- Unknown node.
- int get_attribute_count ( ) const
Gets the amount of attributes in the current element.
- get_attribute_name ( int idx ) const
Gets the name of the attribute specified by the index in argument.
- get_attribute_value ( int idx ) const
Gets the value of the attribute specified by the index in argument.
- get_current_line ( ) const
- String get_named_attribute_value ( 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 ( 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.
Gets the contents of a text node. This will raise an error in any other type of node.
- 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 .
- int get_node_offset ( ) const
Gets the byte offset of the current node since the beginning of the file or buffer.
- get_node_type ( )
Gets the type of the current node. Compare with NodeType constants.
- has_attribute ( String name ) const
- is_empty ( ) const
Check whether the current element is empty (this only works for completely empty tags, e.g. ).
- Error open ( file )
Opens an XML file for parsing. This returns an error code.
- Error open_buffer ( 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.
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.