首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XML::Twig在封闭的>之前添加空格

XML::Twig在封闭的>之前添加空格
EN

Stack Overflow用户
提问于 2018-08-07 19:30:56
回答 1查看 59关注 0票数 0

我有:

代码语言:javascript
运行
复制
<data id="010" name="Common"  action="text"> 
...
</data>

如何使用XML::Twig在">“前添加空格,例如:

代码语言:javascript
运行
复制
<data id="010" name="Common"  action="text" > 

</data>

有什么想法吗?

EN

Stack Overflow用户

发布于 2018-08-09 18:04:49

这不是很美观,但是您可以更改XML::Twig输出开始标记的方式。方法是start_tag,在XML::Twig::Elt中;

最干净的方法是将XML::Twig::Elt子类化(如下面代码中的my_elt ),并更改原始start_tag方法的输出:

代码语言:javascript
运行
复制
#!/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à!
  }
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51725729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档