1
我從following file檢索信息,使用所述XML 包在R.我檢索一組表的節點,然後希望進一步使用xpathApply每個節點上R:XML:故障遍歷節點集
doc = htmlParse(file.link)
tableNodes = getNodeSet(doc, "//table")
for(i in 1:length(tableNodes)){
print(xpathApply(tableNodes[[i]],"//tr[1]/td[1]",xmlValue))
}
這應該返回文件中每個表格的左上角元素,但由於某些原因,每次迭代都會返回第一個表格的左上角元素。也就是說,對於每一個我,我都會得到;
"事業所名(所在地)"
相反,它應該返回;
i=1: "事業所名(所在地)"
i=2: "會社名事業所名(主な所在地)"
i=3: "會社名(所在地)"
...
繼this post,我也嘗試過使用sapply,但得到了類似的結果 - 僅僅從第一個表中的條目返回。
sapply(tableNodes, function(x) { xpathApply(x,"//tr[1]/td[1]",xmlValue) })
當我打印的每個節點到控制檯,不同的表返回,但任何想法,爲什麼我看到這種行爲?我需要做什麼額外的步驟才能返回所需的輸出?
解決此問題的另一種方法是由包的作者提出的,它使用上下文節點的語法; '.// TR [1]/TD [1]'。 – JSB