XML
xml.f provides basic XML file reading support.
Most of the words are kept within their own vocabulary, called xmling
.
: parsexml ( adr len -- dom ) Load DOM from XML text in memory
: loadxml ( adr c -- dom nnn-root ) Load DOM from XML file and fetch its root node
define xmling
: value@ ( dom-nnn -- adr c ) Get node (tag or attribute) value
: istype ( dom-nnn type -- dom-nnn flag ) Check node type
: named? ( dom-nnn adr c -- dom-nnn flag ) Check node name
: >first ( dom-nnn -- dom-nnn|0 ) Get first child node
: >next ( dom-nnn -- dom-nnn|0 ) Get next sibling node
: #elements ( dom-nnn adr c -- n ) get # of child elements with a given name
: element ( dom-nnn n adr c -- dom-nnn|0 ) get child element N with a given name
: attr? ( dom-nnn name c -- flag ) check if element has an attribute
: val ( dom-nnn name c -- val c ) get value of an attribute as a string
: pval ( dom-nnn name c -- n ) fixed point
: ival ( dom-nnn name c -- # ) integer
: text ( dom-nnn -- text c | 0 ) get the text body of an element
: eachel ( dom-nnn xt -- ) ( dom-nnn -- ) itterate on children elements
: eachel> ( dom-nnn -- <code> ) ( dom-nnn -- )
: that's ( dom-nnn -- <name> dom-nnn ) early-out if element isn't given namee
Last updated