Difference between revisions of "Function xml.parse()"
Jump to navigation
Jump to search
(→XmlElement Members) |
(→XmlElement Members) |
||
Line 14: | Line 14: | ||
* <i>string</i> <code>name</code> name of the node | * <i>string</i> <code>name</code> name of the node | ||
log(xml.parse("<note>something</note>").name) -- note | log(xml.parse("<note>something</note>").name) -- note | ||
− | * <i>string</i> <code>text</code> text content of the node (excluding the contents of child nodes) | + | * <i>string</i> <code>text</code> text content of the node (excluding the contents of child nodes). To read all content as a text, use .innerXml (see below) |
local data = xml.parse("<note>something <big>really</big> good</note>") | local data = xml.parse("<note>something <big>really</big> good</note>") | ||
log(data.text) -- something good | log(data.text) -- something good | ||
Line 80: | Line 80: | ||
]] | ]] | ||
local parsed = xml.parse(data) | local parsed = xml.parse(data) | ||
− | log(parsed.child("book").xml) -- <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> | + | log(parsed.child("book").xml) |
+ | -- <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> | ||
+ | * <i>string</i> <code>innerXml</code> inner xml of parent XmlElement | ||
+ | local data = [[ | ||
+ | <papers> | ||
+ | <book>Bible</book> | ||
+ | <magazine>Automoto Revue</magazine> | ||
+ | <book>Quran</book> | ||
+ | </papers> | ||
+ | ]] | ||
+ | local parsed = xml.parse(data) | ||
+ | log(parsed.innerXml) | ||
+ | -- <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> | ||
+ | * <i>XmlElement/nil</i> <code>parent</code> parent node | ||
+ | local data = [[ | ||
+ | <papers> | ||
+ | <book>Bible</book> | ||
+ | <magazine>Automoto Revue</magazine> | ||
+ | <bool>Quran</bool> | ||
+ | </papers> | ||
+ | ]] | ||
+ | local magazine = xml.parse(data).child("magazine") | ||
+ | log(magazine.parent.name) -- papers | ||
+ | * <i>XmlElement/nil</i> <code>root</code> root node (nil for root) | ||
__NOTOC__ | __NOTOC__ |
Revision as of 10:53, 22 April 2017
Parses xml string.
XmlElement xml.parse(xmlstring
)
Parameters
- string
xmlstring
string to parse
Return value
XmlElement
Consecutive spaces are trimmed to single space.
XmlElement Members
- string
name
name of the node
log(xml.parse("<note>something</note>").name) -- note
- string
text
text content of the node (excluding the contents of child nodes). To read all content as a text, use .innerXml (see below)
local data = xml.parse("<note>something <big>really</big> good</note>") log(data.text) -- something good
- string/nil
attr(string name)
returns the value of a single attribute; if the attribute doesn't exists, ruturns nil
local data = xml.parse('<note from="ann" to="bob">hello</note>') log(data.attr("from")) -- ann
- table
attr()
returns all attributes as a table
local data = xml.parse('<note from="ann" to="bob">hello</note>') local attrs = data.attr() logf("%s -> %s", attrs.from, attrs["to"]) -- ann -> bob
- XmlElement
child(string name)
returns first child node with given name
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> ]] local parsed = xml.parse(data) log(parsed.child("book").text) -- Bible
- array
children(optional string name)
returns all child nodes; if name is provided, the nodes are filtered by the name
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> ]] local parsed = xml.parse(data) log(parsed.children("book")[2].text) -- Quran log(parsed.children()[2].text) -- Automoto Revue
- XmlAttribute/nil
get(string/number...)
traverses the xml tree and filters the result for each argument:- string descend into first node of given name
- number descend into n-th node of name specified by previous argument
local data = [[ <root> <papers> <book>Bible</book> </papers> <papers> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> </root> ]] local parsed = xml.parse(data) log(parsed.get("papers",2,"book").text) -- Quran
- XmlElement/nil
next
next sibling node of the same name
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> ]] local parsed = xml.parse(data) log(parsed.child("book").next.text) -- Quran
- string
xml
inner xml of parent XmlElement
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> ]] local parsed = xml.parse(data) log(parsed.child("book").xml)
-- <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book>
- string
innerXml
inner xml of parent XmlElement
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book> </papers> ]] local parsed = xml.parse(data) log(parsed.innerXml)
-- <book>Bible</book> <magazine>Automoto Revue</magazine> <book>Quran</book>
- XmlElement/nil
parent
parent node
local data = [[ <papers> <book>Bible</book> <magazine>Automoto Revue</magazine> <bool>Quran</bool> </papers> ]] local magazine = xml.parse(data).child("magazine") log(magazine.parent.name) -- papers
- XmlElement/nil
root
root node (nil for root)