我有:
<data id="010" name="Common" action="text">
...
</data>
如何使用XML::Twig在">“前添加空格,例如:
<data id="010" name="Common" action="text" >
</data>
有什么想法吗?
发布于 2018-08-09 18:04:49
这不是很美观,但是您可以更改XML::Twig输出开始标记的方式。方法是start_tag
,在XML::Twig::Elt中;
最干净的方法是将XML::Twig::Elt子类化(如下面代码中的my_elt
),并更改原始start_tag
方法的输出:
#!/usr/bin/env perl
use strict;
use warnings;
use XML::Twig;
# elements will be created as "my_elt" instead of XML::Twig::Elt
my $t= XML::Twig->new( elt_class => 'my_elt')
->parse( '<data id="010" name="Common"> text </data>')
->print;
# create a new class, based on 'XML::Twig::Elt'
package my_elt;
use base 'XML::Twig::Elt';
# my_elt only tweaks start_tag
sub start_tag
{ my $s= shift->SUPER::start_tag(); # get the original start tag
$s=~ s{(>\s*)$}{ $1}s; # replace the last '>' by ' >'
return $s; # voilà!
}
https://stackoverflow.com/questions/51725729
复制相似问题