R を使用して XML ファイルを読み取り、いくつかのノードを選択して別の XML に書き戻そうとしています。R で XML ファイルを処理する方法を学んでいます。このリンクの例を参照してください。 com/r-and-the-web-for-beginners-part-ii-xml-in-r/」では、XML を読み取って選択したノードを出力する方法について説明しています。上記の例を拡張したい - 「プラント」ノードの範囲 (インスタンス 1 から 5 まで) を選択し、それを別の XML に保存したい
入力 XML ファイルは次のようになります。
<?xml version="1.0"?>
<CATALOG>
<PLANT>
<COMMON>Bloodroot</COMMON>
<BOTANICAL>Sanguinaria canadensis</BOTANICAL>
<ZONE>4</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$2.44</PRICE>
<AVAILABILITY>031599</AVAILABILITY>
</PLANT>
<PLANT>
<COMMON>Columbine</COMMON>
<BOTANICAL>Aquilegia canadensis</BOTANICAL>
<ZONE>3</ZONE>
<LIGHT>Mostly Shady</LIGHT>
<PRICE>$9.37</PRICE>
<AVAILABILITY>030699</AVAILABILITY>
</PLANT>
.
.
<CATALOG>
次のコードがあります
library(XML)
xml.url <- "http://www.w3schools.com/xml/plant_catalog.xml"
xmlfile <- xmlTreeParse(xml.url)
xmltop <- xmlRoot(xmlfile)
saveXML(xmltop[1:5],file="out.xml")
しかし、R はエラー メッセージ「(関数 (クラス、fdef、mtable) のエラー: 署名 '"XMLNodeList" の関数 'saveXML' の継承されたメソッドが見つかりません。
注: 完全な XML を書き込もうとすると (" saveXML(xmlroot,file="out.xml")") 正常に動作しますが、サブセットを書き込もうとしたときにのみ失敗します。