我正在尝试使用R中的xml包解析网页.XML在属性名称中有一些特殊字符,例如:<B name="A < 0">
,getNodeSet()不喜欢。我认为使用<
的重点是避免&lt;被保留。
这是一个可重现的示例,会抛出错误。
x <- '
<A>
<B name="1">
<C name="A < 0"> Value </C>
</B>
</A>
'
getNodeSet(xmlRoot(xmlTreeParse(x)),"/A/B/C")
如何使用getNodeSet干净地解析这个?
我有一个快速的解决方法,我在原始文本上使用gsub来查找和替换<
的实例,但我担心替换我不打算替换的东西。该文件在属性名称中也有"
个实例。同样的问题。
是否有比gsub更优雅,更通用的解决方案?
非常感谢!
答案 0 :(得分:0)
试试这个例子:
xpathSApply(xmlParse(x),"/A/B/C",xmlGetAttr,'name')
[1] "A < 0"
xpathSApply
相当于sapply
。另请注意xmlParse
而非xmlTreeParse
的使用。