问题描述
我正在使用 R 的 xml2 包来操作 xml 文件。我知道一个属性的名称并想找到它的 xpath。
我知道我可以在 xml 文档中搜索给定的节点名称并返回关联的 xpath。例如,在下面的代码中,我正在搜索节点名称“CHILD_NODE”并返回 xpath。
n consecutive buckets
如果我改为指定属性名称,如何找到 xpath?例如。在上面的示例中,我想搜索属性“library(xml2)
library(dplyr)
# Make example data
dat <- read_xml(
"<PARENT_NODE>
<CHILD_NODE attr_name='a'>
</CHILD_NODE>
</PARENT_NODE>"
)
# Find xpath to CHILD_NODE:
xpath = dat %>%
xml_find_all('//CHILD_NODE') %>%
xml_path()
# "/PARENT_NODE/CHILD_NODE"
”并返回 xpath attr_name
?
解决方法
正确的 xpath 是
dat %>%
xml_find_all('//*[@attr_name]') %>%
xml_path()
*
搜索所有节点,@
允许您指定要优化的属性。