Convenience accessors for the children of XMLNode objects.
Convenience accessors for the children of XMLNode objects.
These provide a simplified syntax for extracting the children of an XML node.
## S3 method for class 'XMLNode'x[..., all =FALSE]## S3 method for class 'XMLNode'x[[...]]## S3 method for class 'XMLDocumentContent'x[[...]]
Arguments
x: the XML node or the top-level document content in which the children are to be accessed. The XMLDocumentContent is the container for the top-level node that also contains information such as the URI/filename and XML version. This accessor method is merely a convenience to get access to children of the top-level node.
...: the identifiers for the children to be retrieved, given as integer indices, names, etc. in the usual format for the generic link{[} and link{[[} operators
all: logical value. When ... is a character vector, a value of TRUE for all means to retrieve all of the nodes with those names rather than just the first one. FALSE gives the usual result of subsetting a list by name which gives just the first element. This allows us to avoid the idiom node[ names(node) == "bob" ]
which is complicated when node is the result of an inline computation and instead we use node["bob", all = TRUE].
Returns
A list or single element containing the children of the XML node given by obj
f = system.file("exampleData","gnumeric.xml", package ="XML") top = xmlRoot(xmlTreeParse(f))# Get the first RowInfo element. top[["Sheets"]][[1]][["Rows"]][["RowInfo"]]# Get a list containing only the first row element top[["Sheets"]][[1]][["Rows"]]["RowInfo"] top[["Sheets"]][[1]][["Rows"]][1]# Get all of the RowInfo elements by position top[["Sheets"]][[1]][["Rows"]][1:xmlSize(top[["Sheets"]][[1]][["Rows"]])]# But more succinctly and accurately, get all of the RowInfo elements top[["Sheets"]][[1]][["Rows"]]["RowInfo", all =TRUE]