class xml::XParser
sys::Obj xml::XParser
@Js
XParser is a simple, lightweight XML parser. It may be used as a pull parser by iterating through the element and text sections of an XML stream or it may be used to read an entire XML tree into memory as XElems.
- close
-
Bool close()
Close the underlying input stream. Return true if the stream was closed successfully or false if the stream was closed abnormally.
- col
-
Int col := 1 { private set }
Current one based column number.
- depth
-
Int depth := -1 { private set }
Get the depth of the current element with the document. A depth of zero indicates the root element. A depth of -1 indicates a position before or after the root element.
- doc
-
XDoc doc := XDoc.<ctor>() { private set }
Get the root document node.
- elem
-
XElem? elem()
Get the current element if
nodeType
iselemStart
orelemEnd
. IfnodeType
istext
orpi
then this is the parent element. AfterelemEnd
this XElem instance is no longer valid and will be reused for further processing. If depth is -1 return null. - elemAt
-
Get the element at the specified depth. Depth must be between 0 and
depth
inclusively. CallingelemAt(0)
will return the root element andelemAt(depth)
returns the current element. If depth is invalid IndexErr is thrown. - line
-
Int line := 1 { private set }
Current one based line number.
- make
-
new make(InStream in)
Construct input stream to read.
- next
-
XNodeType? next()
Advance the parser to the next node and return the node type. Return the current node type:
XNodeType.elemStart
XNodeType.elemEnd
XNodeType.text
XNodeType.pi
- null indicates end of stream Also see
nodeType
.
- nodeType
-
XNodeType? nodeType { private set }
Get the current node type constant which is always the result of the last call to
next
. Node type will be:XNodeType.elemStart
XNodeType.elemEnd
XNodeType.text
XNodeType.pi
- null indicates end of stream
- parseDoc
-
XDoc parseDoc(Bool close := true)
Parse the entire document into memory as a tree of XElems and optionally close the underlying input stream.
- parseElem
-
XElem parseElem(Bool close := true)
Parse the current element entirely into memory as a tree of XElems and optionally close the underlying input stream.
- pi
-
XPi? pi()
if the current node type is
pi
return the XPi instance otherwise return null. - skip
-
Void skip(Int toDepth := this.depth)
Skip parses all the content until reaching the end tag of the specified depth. When this method returns, the next call to
next
will return the node immediately following the end tag. - text
-
XText? text()
If the current type is
text
the XText instance used to store the character data. After a call tonext
this XText instance is no longer valid and will be reused for further processing. If the current type is nottext
then return null.