Eclipse XML格式化程序

时间:2009-01-23 03:00:38

标签: xml eclipse plugins

什么是内置Eclipse XML编辑器的免费替代品?

与IDE一起打包的那个有两个主要的格式化问题:

  1. 格式化程序尝试解析转义的字符,就好像它们未转义一样。例如。 '&安培; LT;'被视为'<'这会导致格式化程序“停止”。
  2. 元素之间的空格不符合:

    <foo>   text </foo>
    

    将格式化为:

    <foo>text</foo>
    
  3. 我们正在使用Eclipse 3.4。

    更新

    问题#1是一个已知错误:Formatting issues with entities in XML files

    Apparently空白格式是预期的功能。我已经要求将其作为一个选项提供或者建议我在自己的插件中修复它,但截至目前为止,没有答案。

6 个答案:

答案 0 :(得分: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获得了更好的结果。

答案 1 :(得分:2)

答案 2 :(得分:2)

如果您愿意,可以尝试this one

答案 3 :(得分:1)

xml editor with WTP

中格式化{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>

(好奇地保留了最后的空格)

任何转义的字符序列都会停止格式化(每行都会格式化包含转义字符的行)

我会更深入地研究这个问题,并将此答案作为社区答案。

答案 4 :(得分:1)

我过去曾使用过XMLBuddy http://www.xmlbuddy.com/

在我恢复到OxygenXML之前,你需要支付氧气费用。

答案 5 :(得分:1)

Eclipse XML编辑器将尊重CDATA部分,并且不会在这些部分中进行任何格式化。我用kepler测试了这个。这可以输入更多内容,但可以使用preferences -> XML -> XML Files -> Editor -> Templates中的模板来简化此操作。