0

我有许多当前格式化的 XML 文件,因此所有属性都在一个很长的行上。我想自动重新格式化它们,因为手动操作很乏味且容易出错。我找到了几个重新格式化它们的选项,以便每一行都有一个属性。我使用 Google 找到了这些选项。其中一些可以通过以下链接找到。

问题是我宁愿每行有两个属性。是否有支持该选项的工具?

4

1 回答 1

1

Saxon 序列化程序在使用 indent=yes 运行时,如果该行变得太长,则将属性移动到新行。可以使用序列化选项 saxon:line-length 设置行长度,默认为 80。(好旧的穿孔卡片!)

如果您只想格式化文件而不进行任何转换,最简单的方法是运行身份查询“.”,如下所示:

java net.sf.saxon.Query -qs:. -s:myxml.xml !indent=yes !saxon:line-length=50

请注意,对于某些 shell 处理器,“!” 需要用反斜杠转义;我认为这不适用于 DOS 命令行处理器。

还有一个选项可以控制属性的顺序,但是(对不起!)没有直接的方法来控制每行输出的属性数量。如果你喜欢做一些编程,Saxon 的序列化器是高度可定制的。

于 2013-10-10T21:48:13.460 回答