3
这是一个跟进a very similar question我已经问过,但这次我试图让xmlAttrs而不是xmlValue。所以我们可以说,我们有以下几点:如何使用xmlAttrs使xpathSApply输出长度节点的向量?
my.xml <- '
<tv>
<show>
<name>Star Trek TNG</name>
<rating>1.0</rating>
<a href="http://www.google.com">google</a>
</show>
<show>
<name>Doctor Who</name>
<a href="http://www.google.com">google</a>
</show>
<show>
<name>Babylon 5</name>
<rating>2.0</rating>
</show>
</tv>
'
library(XML)
doc <- xmlParse(my.xml)
xpathSApply(doc, '/tv/show', function(x) xmlValue(xmlChildren(x)$a))
# [1] "google" "google" NA
我宁愿输出为
# [1] "http://www.google.com" "http://www.google.com" NA
但我不能弄清楚。我想这可能是这样,但我是一个错误的:
xpathSApply(doc, '/tv/show', function(x) xmlAttrs(xmlChildren(x)$a))
# Error in UseMethod("xmlAttrs", node) :
# no applicable method for 'xmlAttrs' applied to an object of class "NULL"
我已经得到最接近的是这样的:
xpathSApply(doc, '/tv/show', function(x) xmlChildren(x)$a)
# [[1]]
# <a href="http://wwww.google.com">google</a>
#
# [[2]]
# <a href="http://wwww.google.com">google</a>
#
# [[3]]
# NULL