Learn R Programming

XML (version 0.99-7)

getNodeSet: Find matching nodes in an internal XML tree/DOM

Description

This function provides a way to find XML nodes that match a particular criterion. It uses the XPath syntax and allows quite powerful expressions for identifying nodes. The XPath language requires some knowledge, but tutorials are available.

Usage

getNodeSet(doc, path, namespaces = character())

Arguments

doc
an object of class XMLInternalDocument
path
a string (character vector of length 1) giving the XPath expression to evaluate.
namespaces
a named character vector giving the namespace prefix and URI pairs that are to be used in the XPath expression and matching of nodes. One only needs to specify the namespaces in the XPath expression and for the nodes of interest rather tha

Value

  • The results can currently be different based on the returned value from the XPath expression evaluation:
  • lista node set
  • numerica number
  • logicala boolean
  • charactera string, i.e. a single character element.

Details

This calls the libxml routine xmlXPathEval.

References

http://xmlsoft.org, http://www.w3.org/xml http://www.w3.org/TR/xpath http://www.omegahat.org/RSXML

See Also

xmlTreeParse with useInternalNodes as TRUE.

Examples

Run this code
doc = xmlTreeParse(system.file("exampleData", "tagnames.xml", package = "XML"), useInternalNodes = TRUE)
 getNodeSet(doc, "/doc//b[@status]")
 getNodeSet(doc, "/doc//b[@status='foo']")

 
 els = getNodeSet(doc, "/doc//a[@status]")
 sapply(els, function(el) xmlGetAttr(el, "status"))

Run the code above in your browser using DataLab