2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2023-03-01 08:44:37 +08:00
<class name= "XMLParser" inherits= "RefCounted" version= "4.1" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-13 04:42:36 +08:00
<brief_description >
2019-06-22 07:04:47 +08:00
Low-level class for creating parsers for [url=https://en.wikipedia.org/wiki/XML]XML[/url] files.
2017-09-13 04:42:36 +08:00
</brief_description>
<description >
2019-06-22 07:04:47 +08:00
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.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
</tutorials>
<methods >
<method name= "get_attribute_count" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-18 06:08:09 +08:00
Gets the number of attributes in the current element.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_attribute_name" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "idx" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Gets the name of the attribute specified by the [param idx] index.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_attribute_value" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "idx" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Gets the value of the attribute specified by the [param idx] index.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_current_line" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2022-07-05 07:23:04 +08:00
Gets the current line in the parsed file, counting from 0.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_named_attribute_value" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "name" type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Gets the value of a certain attribute of the current element by [param name]. This will raise an error if the element has no such attribute.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_named_attribute_value_safe" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "name" type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Gets the value of a certain attribute of the current element by [param name]. This will return an empty [String] if the attribute is not found.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_node_data" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Gets the contents of a text node. This will raise an error in any other type of node.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_node_name" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Gets the name of the current element node. This will raise an error if the current node type is neither [constant NODE_ELEMENT] nor [constant NODE_ELEMENT_END].
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_node_offset" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Gets the byte offset of the current node since the beginning of the file or buffer.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "get_node_type" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "XMLParser.NodeType" />
2017-09-13 04:42:36 +08:00
<description >
2019-12-07 06:09:20 +08:00
Gets the type of the current node. Compare with [enum NodeType] constants.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "has_attribute" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "bool" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "name" type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Check whether the current element has a certain attribute.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "is_empty" qualifiers= "const" >
2021-07-30 21:28:05 +08:00
<return type= "bool" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Check whether the current element is empty (this only works for completely empty tags, e.g. [code]< element \> [/code]).
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "open" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "Error" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "file" type= "String" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Opens an XML [param file] for parsing. This returns an error code.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "open_buffer" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "Error" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "buffer" type= "PackedByteArray" />
2017-09-13 04:42:36 +08:00
<description >
2022-08-09 07:41:07 +08:00
Opens an XML raw [param buffer] for parsing. This returns an error code.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "read" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "Error" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Reads the next node of the file. This returns an error code.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "seek" >
2021-07-30 21:28:05 +08:00
<return type= "int" enum= "Error" />
2022-08-07 02:11:48 +08:00
<param index= "0" name= "position" type= "int" />
2017-09-13 04:42:36 +08:00
<description >
2019-06-22 07:04:47 +08:00
Moves the buffer cursor to a certain offset (since the beginning) and read the next node there. This returns an error code.
2017-09-13 04:42:36 +08:00
</description>
</method>
<method name= "skip_section" >
2021-07-30 21:28:05 +08:00
<return type= "void" />
2017-09-13 04:42:36 +08:00
<description >
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.
</description>
</method>
</methods>
<constants >
2017-11-25 06:16:30 +08:00
<constant name= "NODE_NONE" value= "0" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
There's no node (no file or buffer opened).
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_ELEMENT" value= "1" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
Element (tag).
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_ELEMENT_END" value= "2" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
End of element.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_TEXT" value= "3" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
Text node.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_COMMENT" value= "4" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
Comment node.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_CDATA" value= "5" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
CDATA content.
2017-09-13 04:42:36 +08:00
</constant>
2017-11-25 06:16:30 +08:00
<constant name= "NODE_UNKNOWN" value= "6" enum= "NodeType" >
2020-01-23 18:14:14 +08:00
Unknown node.
2017-09-13 04:42:36 +08:00
</constant>
</constants>
</class>