我需要修改一个XML文档并将其转储回去。我可以使用perl中的XML::解析器执行此操作,但是我找不到一种方法将其转储回来。我找不到太多关于写回它的东西..
其中一个哑巴实现
use warnings;
use strict;
use XML::Parser;
use Data::Dumper;
sub char_handler
{
my ($parser, $text) = @_;
$text = #DO SOMETHING HERE WITH THE TEXT
}
my ($file) = @ARGV;
open(FILE,$file);
$xml=<FILE>;
my $parser = new XML::Parser( Style=>"Tree",
Handler => {
Char => \&char_handler
});
my $doc = $parser->parse($xml);
print Data::Dumper->Dump([$doc]);
dumps the XML.
发布于 2019-06-26 05:05:19
解析器只是一个解析器,它实际上并不打算修改文档并将其保存为XML。对于这种类型的应用程序,您需要具有某种类型的DOM (文档对象模型)的模块,它保留了足够的文档信息,并且能够序列化回XML。
我使用并推荐使用XML::LibXML,并编写了您可能会觉得有用的a tutorial。
这绝不是唯一的选择,但它是可靠的。它也比XML::Simple更简单、更一致(我对XML::Simple有足够的了解,可以说不要使用它)。
https://stackoverflow.com/questions/56755570
复制相似问题