R: Determine the location - file & line number of an (internal)...

getLineNumber {XML} | R Documentation

## Determine the location - file \& line number of an (internal) XML node

### Description

The `getLineNumber` function is used to query the location of an internal/C-level XML node within its original "file". This gives us the line number. `getNodeLocation` gives both the line number and the name of the file in which the node is located, handling XInclude files in a top-level document and identifying the included file, as appropriate. `getNodePosition` returns a simplified version of `getNodeLocation`, combining the file and line number into a string and ignoring the `XPointer` component.

This is useful when we identify a node with a particular charactestic and want to view/edit the original document, e.g. when authoring an Docbook article.

### Usage

    getLineNumber(node, ...)
    getNodeLocation(node, recursive = TRUE, fileOnly = FALSE)

### Arguments

`node` | the node whose location or line number is of interest
`...` | additional parameters for methods should they be defined.
`recursive` | a logical value that controls whether the full path of the nested includes is returned or just the path in the immediate XInclude element.
`fileOnly` | a logical value which if `TRUE` means that only the name of the file is returned, and not the `xpointer` attribute or line number .

### Value

`getLineNumber` returns an integer. `getNodeLocation` returns a list with two elements - `file` and `line` which are a character string and the integer line number.

For text nodes, the line number is taken from the previous sibling nodes or the parent node.

### Author(s)

Duncan Temple Lang

### References

libxml2

### See Also

`findXInclude` `xmlParse` `getNodeSet` `xpathApply`

### Examples

    f = system.file("exampleData", "xysize.svg", package = "XML")
    doc = xmlParse(f)
    e = getNodeSet(doc, "//ellipse")
    sapply(e, getLineNumber)

[Package XML version 3.98-1.19 Index]