この例の XML を取る
<body>
<items>
<item>
<name>Peter</name>
</item>
</items>
<items>
<item>
<name>Paul</name>
</item>
<item>
<name>Claudia</name>
</item>
</items>
<items/>
</body>
質問: 次の結果を得る最も簡単な方法は何ですか?
"Peter" "Paul" ""
今では、次のようにこれを達成しています:
require(rvest)
require(magrittr)
my_xml <- xml("<items><item><name>Peter</name></item></items><items><item><name>Paul</name></item><item><name>Claudia</name></item></items><items></items>")
items <- my_xml %>% xml_nodes("items") %>% xml_node("item")
sapply(items, function(x){
if(is.null(x)){
""
} else {
x %>% xml_node("name") %>% xml_text()
}
})
私にとって、このsapply
構造の継ぎ目は、いずれかrvest
または css-selectors を虐待するようなものです。