我的问题可能很愚蠢,或者缺乏信息,对此我深表歉意。我会尽量做到我认为需要的描述性。
我们有很多 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)