【发布时间】:2019-11-07 09:10:15
【问题描述】:
我需要修改一个 XML 文档并将其转储回去。我可以使用 perl 中的 XML::Parser 来执行此操作,但是我找不到将其转储回来的方法。找不到太多关于写回来的东西..
愚蠢的实现之一
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.
【问题讨论】:
-
由于环境的限制,目前无法使用 Twig,并希望使其保持简单。 XML::Simple 可能是......但我对 XML::Simple 也有同样的问题。
-
XML::LibXML 呢?
-
Mojo::DOM 或 Mojo::DOM58 是更多选项。 Don't use XML::Simple.
-
我不认为你可以使用处理函数来修改被解析的文档。
-
@Shawn 你说得对,我只是将 xml 转储回去,它与 XML::Parser 的任何其他替代方案相同,还是 twig 或其他?
标签: xml perl xml-parsing