0

例如,当您指定 XML 节点路径时://tr[@class='party-rep']

getNodeSet(rootsChild, //tr[@class='party-rep']) 

此函数是否仍然从树的根部搜索以查找类为“party-rep”的 tr div,或者由于我们将rootsChild 指定为文档,它将从rootChild 及其所有子项开始搜索并忽略实际的根?

4

1 回答 1

4

这将为<tr class='party-rep'>您提供 xml 文档中的所有内容:

getNodeSet(rootsChild, "//tr[@class='party-rep']") 

如果你想要所有<tr class='party-rep'>元素的子rootsChild元素,你必须在你的 xpath 表达式前面添加一个点:

getNodeSet(rootsChild, ".//tr[@class='party-rep']") 

这是一个例子:

R> xml <- "<root><a><td>foo</td></a><b><td>bar</td></b></root>"
R> doc <- xmlParse(xml)
R> doc
# <?xml version="1.0"?>
# <root>
#   <a>
#     <td>foo</td>
#   </a>
#   <b>
#     <td>bar</td>
#   </b>
# </root>

R> a <- getNodeSet(doc, '//a')[[1]]
R> getNodeSet(a, '//td')
# [[1]]
# <td>foo</td> 
# 
# [[2]]
# <td>bar</td> 
# 
# attr(,"class")
# [1] "XMLNodeSet"

R> getNodeSet(a, './/td')
# [[1]]
# <td>foo</td> 
# 
# attr(,"class")
# [1] "XMLNodeSet"
于 2013-04-23T08:17:48.603 回答