0
當你指定例如XML節點的路徑://tr[@class='party-rep']
根路徑
,做
getNodeSet(rootsChild, //tr[@class='party-rep'])
,這種功能還是從樹的根搜索尋找具有類TR DIV「 party-rep「,或者我們將rootsChild指定爲doc,它將從rootsChild及其所有子項開始搜索並忽略實際的根目錄?
當你指定例如XML節點的路徑://tr[@class='party-rep']
根路徑
,做
getNodeSet(rootsChild, //tr[@class='party-rep'])
,這種功能還是從樹的根搜索尋找具有類TR DIV「 party-rep「,或者我們將rootsChild指定爲doc,它將從rootsChild及其所有子項開始搜索並忽略實際的根目錄?
這將會給你的XML文檔中的所有<tr class='party-rep'>
:
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-23 08:21:34
@DWin'.'將檢索限制在給予'getNodeSet'的節點的子節點上。你的意思是我應該在''節點上增加幾個''元素來使這個例子更加明確嗎? – juba 2013-04-23 08:33:49