Вернуть узлы с тем же именем в xml2 - PullRequest
1 голос
/ 07 июня 2019

У меня есть 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 Ответ

1 голос
/ 07 июня 2019

Вы можете использовать [], чтобы указать, какой индекс узла вы хотите.Вы можете получить второй d узел с

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

Это предикат xpath

...