我的问题可能是愚蠢的,或者缺乏信息,我很抱歉。 我会尽量像我认为的那样具有描述性。
我们有很多xmls,可能有数百个模式(不同的根/元素名称,不同的属性)。 在编写代码时,许多开发人员错误地在这些xmls中添加了混合内容(只有我们的架构是--->“没有混合内容”)。
我们想重新缩进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>
我已经提到标签为A-D作为例子,因为我们的xml中的元素有数百个可能的值..我想为以下两个提供一些帮助:
1)找出哪些文件有混合内容。由于我们有很多文件,我宁愿使用bash脚本(或任何这样的脚本) 2)正确格式化xml文件的方法。
任何帮助都将深表感谢。一段时间以来,我一直在讨论这个问题,这样看起来非常简单,对我来说已经证明是非常艰难的。 我们系统的其他信息是我们使用的是Unix,如果需要,我们可以使用perl的帮助。 (但我们没有Twig或LibXML :: PrettyPrint)