這里是一個快速的模擬代碼。我想得到的是一個字符向量,包括每個p節點的文本內容,該節點的子節點a的屬性href = "value1"。
<doc>
<div class="干預">
<p>/span>
<a></a>
<b>/span>
<a href="value1"/span>> xxx</a>
</b>/span>
文本1
</p> text1
<p>/span>
<a></a>
<b>/span>
<a href="value2"/span>> xxx</a>
</b>/span>
文本2
</p> text2
<p>/span>
<a></a>
<b>/span>
<a href="value1"/span>> xxx</a>
</b>/span>
文本3
</p> text3
</div>/span>
<div class=" intervention">
<p>/span>
<a></a>
<b>/span>
<a href="value2"/span>> xxx</a>
</b>
文本4
</p> text4
<p>/span>
<a></a>
<b>/span>
<a href="value1"/span>> xxx</a>
</b>/span>
文本5
</p> text5
<p>/span>
<a></a>
<b>/span>
<a href="value1"/span>> xxx</a>
</b>
文本6
</p> text6
</div>/span>
</doc>
換句話說,我想得到這個向量:
c("xxxtext1"/span>, "xxxtext3","xxxtext5","xxxtext6")
你能幫助我找到適當的XPath嗎?到目前為止,我已經找到了這個,它可以給我p節點中的所有文本內容,但我不能讓它根據a的href值進行過濾。
"//div[@class=' intervention']//*[not(self::script)]"
預先感謝你的幫助!
uj5u.com熱心網友回復:
你的xpath應該是/a[@href='value1']/ancestor::p
因此,舉例來說:
library(xml2)
結果< -xml_text(xml_find_all(doc。 xpath = "/a[@href='value1']/ancestor: :p"))
gsub("s", "。 result) # remove line breaks and spaces
#> [1] "xxxtext1" "xxxtext3" "xxxtext5" "xxxtext6"
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/331282.html
標籤:
