Eclipse XML格式化工具

8
什么是Eclipse内置XML编辑器的免费替代品?
内置于IDE中的编辑器存在两个主要格式问题。
  1. The formatter tries to parse escaped char's as though they were unescaped. E.g. '&lt;' is treated like '<' which causes the formatter to "stop".
  2. White space between elements is not honored:

    <foo>   text </foo>
    

    will be formatted to:

    <foo>text</foo>
    
我们正在使用Eclipse 3.4。
更新
问题#1是已知的错误:XML文件中实体格式问题显然,空格格式化是预期的功能。我已经要求将其作为选项提供或建议通过自己的插件修复此问题,但迄今为止还没有答案。
6个回答

8

这并不是最理想的解决方案,但我希望有更好的解决方案。以下是一种方法:

使用dom4j构建一个简单的应用程序:

public static void main( final String[] args ) throws Exception {
    String text = FileUtils.readFileToString( new File( args[ 0 ] ) );
    OutputFormat format = OutputFormat.createPrettyPrint();
    format.setTrimText( false );

    XMLWriter writer = new XMLWriter( System.out, format );
    writer.write( DocumentHelper.parseText( text ) );
}

创建可运行的jar包、(可选)批处理脚本,并将其添加为外部工具。当然,您可以尝试使用XMLTidy或其他命令行XML格式化程序,但我在dom4j方面取得了更好的结果。

3
编程是为数不多的几个职业之一,你可以创建每天使用的工具,更多人应该利用这一点。 - Roger Pate
1
@Roger:完全同意。我已经为Eclipse编写了相当多的插件、Maven mojo、脚本、工具等,比我拥有“合法”项目还要多。这几乎总是有趣和有趣的 - 而且实用性也很强 :) - javamonkey79


2
如果你喜欢的话,可以尝试使用这个

1

1
据我所知,XMLbuddy目前不是免费的。 - javamonkey79
1
PS:如果我需要的是完全功能的插件,我很乐意付费。然而,我只需要简单的格式和大纲演示。 - javamonkey79

1
Eclipse XML编辑器将尊重CDATA部分,并且不会在这些部分内进行任何格式化。我已经在Kepler中测试过了。这需要稍微多打一些字,但可以使用从“首选项->XML->XML文件->编辑器->模板”中的模板使其更容易。

1

当我在带有 WTPXML编辑器 中进行格式化 (CTRL+SHIFT+F) 时,我没有看到任何这些问题。

因此,WTP应该解决您的问题。


(来源:springframework.org


我承认错误:在WTP中,“XML编辑器和工具”插件(3.0.2或3.0.3)中,空格和转义字符确实是一个问题。

但是,<foo> text </foo>不会被折叠成<foo>text</foo>

但是,

<foo>    text   text2      text3        </foo>

将被格式化为

<foo> text text2 text3       </foo>

(末尾的空格被保留,有趣吧)

而且任何转义字符序列都会停止格式化(直到包括转义字符的那一行之前的所有行都会被格式化)

我会深入研究这个问题,并将这个答案变成一个社区共享的。


1
我已经安装了'Eclipse XML Editors and Tools 3.0.3'。 你试过在数据中创建带有空格的标签然后进行格式化吗?转义字符呢?如果对你有效的话,我想知道是不是某些设置的问题... - javamonkey79

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接