2

我正在尝试使用 R 中的 xml 包解析网页。XML 在属性名称中有一些特殊字符,例如:<B name="A &lt; 0">,这是 getNodeSet() 不喜欢的。我认为使用的全部目的&lt;是避免 < 被保留的问题。

这是一个引发错误的可重现示例。

x <- '
<A>
<B name="1">
<C name="A &lt; 0"> Value </C>
</B>
</A>
'

getNodeSet(xmlRoot(xmlTreeParse(x)),"/A/B/C")

如何使用 getNodeSet 干净地进行此解析?

我有一个快速的解决方法,我在原始文本上使用 gsub 来查找和替换 的实例&lt;,但我担心替换我不打算替换的东西。该文件也有&quot;属性名称中的实例。同样的问题。

有没有比 gsub 更优雅、更通用的解决方案?

非常感谢!

4

1 回答 1

0

试试这个例如:

   xpathSApply(xmlParse(x),"/A/B/C",xmlGetAttr,'name')
   [1] "A < 0"

xpathSApply相当于sapply。还要注意xmlParseand not的使用xmlTreeParse

于 2013-06-06T01:29:43.923 回答