findXInclude {XML} | R Documentation

## Find the XInclude node associated with an XML node

### Description

This function is used to traverse the ancestors of an internal XML node to find the associated XInclude node that identifies it as being an XInclude'd node. Each top-level node that results from an include href=... in the libxml2 parser is sandwiched between nodes of class XMLXIncludeStartNode and XMLXIncludeStartNode. These are the sibling nodes.

### Usage

    findXInclude(x, asNode = FALSE)

### Arguments

`x` | the node whose XInclude "ancestor" is to be found
`asNode` | a logical value indicating whether to return the node itself or the attributes of the node which are typically the immediately interesting aspect of the node.

### Value

Either `NULL` if there was no node of class XMLXIncludeStartNode found. Otherwise, if `asNode` is `TRUE`, that XMLXIncludeStartNode node is returned, or alternatively its attribute character vector.

### Author(s)

Duncan Temple Lang

### References

www.libxml.org

### See Also

`xmlParse` and the `xinclude` parameter.

### Examples

     f = system.file("exampleData", "functionTemplate.xml", package = "XML")

     cat(readLines(f), "\n")

     doc = xmlParse(f)

      # Get all the para nodes
      # We just want to look at the 2nd and 3rd which are repeats of the
      # first one.
     a = getNodeSet(doc, "//author")
     findXInclude(a[[1]])

     i = findXInclude(a[[1]], TRUE)
     top = getSibling(i)

       # Determine the top-level included nodes
     tmp = getSibling(i)
     nodes = list()
     while(!inherits(tmp, "XMLXIncludeEndNode")) {
       nodes = c(nodes, tmp)
       tmp = getSibling(tmp)
     }

[Package XML version 2.5-1 Index]