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. ).


    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.


    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.