1

我的问题可能很愚蠢,或者缺乏信息,对此我深表歉意。我会尽量做到我认为需要的描述性。

我们有很多 xml,可能有数百个模式(不同的根/元素名称,不同的属性)。在编写代码时,许多开发人员错误地在这些 xml 中添加了混合内容(我们的唯一模式是 --->“无混合内容”)。

我们想重新缩进 xml 文件,但是上面提到的混合内容给我们带来了问题。我们拥有的唯一 xml 解析器/实用程序是 xmllint(由于某些限制,我们无法获得其他实用程序)。

例如:

<A>
mixed data<B>
<C>text data</C>
</B>
      <D>new data</D>
</A>

运行后(我添加到 xmllint 的选项只是随机尝试)

xmllint --recover --encode "ISO-8859-1" --format data.xml

我得到以下信息:

<?xml version="1.0" encoding="ISO-8859-1"?>
<A>
mixed data<B><C>text data</C></B>
      <D>new data</D>
</A>

我以 AD 为例提到了标签,因为我们的 xml aer 中的元素具有数百个可能的值。我需要以下两个方面的帮助:

1)找出哪些文件有混合内容。由于我们有很多文件,我更喜欢使用 bash 脚本(或任何此类脚本) 2)正确格式化 xml 文件的方式。

任何帮助将不胜感激。一段时间以来,我一直在努力解决这个问题,而像这样看起来很简单的事情对我来说却是相当困难的。我们系统的其他信息是我们正在使用 Unix,如果需要,我们可以借助 perl。(但我们没有 Twig 或 LibXML::PrettyPrint)

4

0 回答 0