我有许多当前格式化的XML文件,因此所有属性都在一条非常长的行上。我想自动重新格式化,因为手动操作是繁琐且容易出错的。我找到了几个重新格式化的选项,以便每行都有一个属性。我使用Google找到了这些选项。其中一些可以通过以下链接找到。
问题是我宁愿每行有两个属性。是否有支持该选项的工具?
答案 0 :(得分:1)
当使用indent = yes运行时,Saxon序列化程序会将属性移动到新行,否则行将变得太长。可以使用序列化选项saxon:line-length设置行长度,默认为80.(旧的打孔卡!)
如果您只想在不进行任何转换的情况下格式化文件,最简单的方法是运行身份查询“。”,如下所示:
java net.sf.saxon.Query -qs:. -s:myxml.xml !indent=yes !saxon:line-length=50
请注意,对于某些shell处理器,“!”需要反斜杠逃脱;我不认为这适用于DOS命令行处理器。
还有一个控制属性顺序的选项但是(对不起!)没有直接控制每行输出属性数的方法。如果您喜欢编程,Saxon的序列化程序可以高度自定义。