2

R で xml パッケージを使用して Web ページを解析しようとしています。XML には、属性名の中にいくつかの特殊文字が含まれ<B name="A &lt; 0">ています。&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と同等ですsapplyxmlParseと notの使用にも注意してくださいxmlTreeParse

于 2013-06-06T01:29:43.923 に答える