mojolicious 自动缩进 XML/HTML

mojolicious auto-indent XML/HTML

Mojo 工具可以自动缩进如下 xml 的字符串吗?

<rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><data><native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native"><version>17.1</version><hostname>R1</hostname></native></data></rpc-reply>

我查看了相关的 Mojo 包,但是,我找不到这个选项。

谢谢

不能直接使用 Mojolicious(或我能找到的任何 Mojo::* 模块)但是我至少知道 XML::Twig 带有 xml_pp 可执行文件。

从该脚本中提取最基本的代码可为您提供...

use XML::Twig;

my $str = '<rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"><data><native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native"><version>17.1</version><hostname>R1</hostname></native></ data></rpc-reply>';

my $xt = XML::Twig->new(pretty_print => 'indented');

my $indented = $xt->parse($str)->sprint;

print $indented

输出这个...

<rpc-reply message-id="101" xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <data>
    <native xmlns="http://cisco.com/ns/yang/Cisco-IOS-XE-native">
      <version>17.1</version>
      <hostname>R1</hostname>
    </native>
  </data>
</rpc-reply>

然后你可以输出你喜欢的字符串。