xmlTree {XML}R Documentation

An internal, updatable DOM object for building XML trees

Description

This is a mutable object (implemented via a closure) for representing an XML tree, in the same spirit as xmlOutputBuffer and xmlOutputDOM but that uses the internal structures of libxml. This can be used to create a DOM that can be constructed in R and exported to another system such as XSLT (http://www.omegahat.org/Sxslt)

Usage

xmlTree(tag, attrs = NULL, dtd=NULL, namespaces=list())

Arguments

tag the tagname of the top-level element. This is basically ignored!
attrs attributes for the top-level node, in the form of a named vector or list.
dtd the name of the external DTD for this document. See newXMLDoc
namespaces a named character vector with each element giving the name space identifier and the corresponding URI, \ e.g c(shelp = "http://www.omegahat.org/XML/SHelp")

Details

This creates a collection of functions that manipulate a shared state to build and maintain an XML tree in C-level code.

Value

An object of class XMLInternalDOM that extends XMLOutputStream and has the same interface (i.e. ``methods'') as xmlOutputBuffer and xmlOutputDOM. Each object has methods for adding a new XML tag, closing a tag, adding an XML comment, and retrieving the contents of the tree.

addTag create a new tag at the current position, optionally leaving it as the active open tag to which new nodes will be added as children
closeTag close the currently active tag making its parent the active element into which new nodes will be added.
addComment add an XML comment node as a child of the active node in the document.
value retrieve an object representing the XML tree. See saveXML to serialize the contents of the tree.
add degenerate method in this context.

Note

This is an early version of this function and I need to iron out some of the minor details.

Author(s)

Duncan Temple Lang

References

http://www.w3.org/XML, http://www.xmlsoft.org, http://www.omegahat.org

See Also

saveXML newXMLDoc newXMLNode xmlOutputBuffer xmlOutputDOM

Examples

  tr <- xmlTree("Duncan")
  tr$addTag("name", attrs=c(a=1,b="xyz"), close=FALSE)
    tr$addTag("first", "Larry")
    tr$addTag("last", "User")
  tr$closeTag()
  tr$value()
  cat(saveXML(tr$value()))

  tr <- xmlTree("CDataTest")
  tr$addTag("top", close=FALSE)
  tr$addCData("x <- list(1, a='&');\nx[[2]]")
  tr$addPI("S", "plot(1:10)")
  tr$closeTag()
  cat(saveXML(tr$value()))

[Package XML version 0.97-0 Index]