【问题标题】:Reading and writing xml using perl使用perl读写xml
【发布时间】:2014-09-07 23:20:20
【问题描述】:

我正在使用 Perl 读取一个 XML 文件,然后对其进行一些更改,然后将其再次写入另一个 XML 文件。

我的输入 XML 看起来像:

            <A
              value1="123">
                <B
                  V1="1"
                  V2="7"
                  V3="1"/>
            </A>

但是我得到的输出是这样的:

            <A value1="123">
                <B V1="1" V2="7" V3="1"/>
            </A>

我正在使用代码:

my $data_xml = $xml->XMLin(get($xml_url),KeepRoot => 1,ForceArray => 1);
XMLout($data_xml,KeepRoot => 1,OutputFile => "Keep5.xml");

如何获得与输出格式相同的输出?

【问题讨论】:

  • 原文件是手动格式化的吗?
  • @Matteo 原文件是用perl读取的,需要用别的名字写回来
  • 为什么要这样做?严肃的问题。 XML 没有将布局定义为规范的一部分。就它而言,在一条线上的所有 smooshed 都与整齐地布局完全相同。它定义了“样式表”,分别涵盖格式和布局。
  • @Sobrique 我的输出 xml 文件被另一个工具读取。当我提供当前输出格式时,它无法处理它。所以我希望输出与输入的格式相同
  • 那么您的其他工具无法读取 XML,并且没有 XML 解析器可以帮助您。对不起,但就是这样。它 - 可能 - 做一些基于行的关键字匹配,这根本不是一回事。 (即使最初看起来很像)

标签: xml perl


【解决方案1】:

我认为没有一种简单的方法可以保留原始格式,但您可以尝试使用工具重新格式化输出

【讨论】:

  • 你能解释一下如何使用这些模块读取和修改数据
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多