我有一个XML文件没有正确的缩进和太多空格。
这种格式

我想格式化并重新引导文件以提高可读性。 我尝试过使用xmllint和xmlstarlet,但是它们都将这些实体替换为ASCII字符,因此它们不再出现在格式化文档中。
如何在不考虑这些实体的情况下格式化XML?
答案 0 :(得分:2)
为每个到达这里的人找到解决方案:
我们可以使用tidy
实用程序。在linux中只是:
sudo apt-get install tidy
tidy -o output.xml --preserve-entities yes -xml input.xml
也许某些选项并不意味着存在。只需围绕选项来满足您的要求。 请参阅此处的完整文档: http://tidy.sourceforge.net/docs/tidy_man.html
最重要的是--preserve-entities yes
答案 1 :(得分:1)
简短回答:你不能,至少不使用依赖XML解析器的工具。
&#...;
构造不是"实体",它们是(数字或十六进制)字符引用。符合规范的XML解析器会自动将所有字符引用转换为相应的字符,这不是您可以关闭的行为 - 从XML解析器接收字符的应用程序绝对无法知道给定字符是文字还是原始来源中的字符引用。