返回xml2中具有相同名称的节点

时间:2019-06-07 19:23:19

标签: r xml xml2

我有一个xml文件,其中有许多同名节点。节点的名称不受我的控制。有没有一种方法可以访问每个具有相同名称的节点的值,而不仅仅是第一个。

xml_child()的帮助文件中,它指出您可以使用search参数“指定要返回的子节点的名称。如果有多个同名的子节点,则首先将返回。”

不幸的是,我也不总是知道相同名称的节点的位置,因此我也不能使用数字值作为搜索参数。

例如:

# similar example provided in the xml2 documentation
x <- read_xml("<foo> a <d>e1</d> <d>e2</d> </foo>")

# this gives expected output from the first child node named "d"
xml_child(x, "d") %>% xml_contents()

# this gives me expected output from second child node with name "d"
# but I don't always know the position of this node
xml_child(x, 2) %>% xml_contents()

那么我有办法访问名为“ d”的第二个节点的值吗?

1 个答案:

答案 0 :(得分:1)

您可以使用[]指定所需的节点索引。您可以使用第二个d节点

xml_child(x, "d[2]") %>% xml_contents()

这是xpath predicate