2012-04-09 13 views
0

私は "school/student [4]"のようなXPathを使用しています。 setNodeText関数はハードディスクに保存できますか?私の変化は記憶の中にあるようだ。Perl:XPathのsetNodeText関数を使用してディスクに保存できますか?

+1

? – Schwern

+0

@Schwern私はXML :: XPathを使用しています – user1322582

+4

XML :: XPathは10年後には触れられておらず、XML構造全体をダンプする方法は書かれていません。私はここで議論されているように、よりよく維持されたXMLモジュールを使用することをお勧めします:http://stackoverflow.com/questions/5275610/what-is-the-easiest-way-to-do-xpath-querying-of-xml-data-in -perl – Schwern

答えて

1

私が正しく理解していれば、ドキュメントを変更してディスクに書き込もうとしています。

use XML::LibXML qw(); 

my $parser = XML::LibXML->new(); 
my $doc = $parser->parse_fh(...); 
my $root = $doc->documentElement(); 

for my $node ($root->findnodes('//school/student[4]')) { 
    $node->removeChildNodes(); 
    $node->appendText("New text"); 
} 

open(my $fh, '>:raw', ...) or die $!; 
print($fh $doc->toString()); 
+0

ありがとう:)ちょうど私が必要としたthats。 – user1322582

0

文書化されていない方法getNodeAsXMLを使用してXML構造をダンプできます。出力は有効なXML(ヘッダなしなど)であることが保証されていますが、通常はそのトリックを行います。

my $str = $xp->getNodeAsXML(); 
print $str; 

出典:あなたはXPathクエリのために使用されているモジュールhttp://www.perlmonks.org/?node_id=567212

関連する問題