我有以下代碼
<paragraph id = "xx"/span>>
<text>hello</text>
</paragraph>/span>
<paragraph id = "yy">
<text>bonjour</text>
</paragraph>/span>
<paragraph id = "zz">
<text>guten Tag</text>
</paragraph>/span>
我也有以下的向量
id_vector <- c("xx"/span>,"zz"/span>)
我想獲得屬性id為 "xx "或 "zz "的段落節點中的文本,即獲得一個字符向量,即
c("hello","guten Tag")
什么是適合與rvest一起使用的XPath? 到目前為止,我已經嘗試了下面的XPath,但沒有結果
"//paragraph[@id = id_vector]/text"。
預先感謝您的幫助!
uj5u.com熱心網友回復:
我原來的建議缺少了在xpath中需要用引號包裹ID的事實,所以我繼續把整個事情放在一起。注意,我添加了一個<doc>標簽作為一個假的,因為xml樣本需要一個父節點。把你的ID和@id=片斷粘貼在一起,折疊成你的xpath字串,然后像通常那樣提取文本。
library(xml2)
doc <- read_xml('
<doc>
<段id="xx">。
<text> hello</text>
</paragraph>
<paragraph id = "yy">
<text>bonjour</text>
</paragraph>
<paragraph id = "zz">
<text>guten Tag</text>
</paragraph>
</doc>
')
id_vector < - c("xx"/span>。 "zz")
標簽 <- paste(stringr:: str_glue("@id='{id_vector}'")。 崩潰 = " 或 ")
xpath <- sprintf("//paragraph[%s]", tag)
xpath
#> [1] "//paragraph[@id='xx' or @id='zz']"
xml_text(xml_find_all(doc, xpath))
#> [1] "hello" "guten Tag"/span>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/322207.html
標籤:
