是否有自动格式化XML的Swing组件?

时间:2010-11-30 23:17:38

标签: java xml swing

我正在寻找Java Swing组件,它会自动格式化我凌乱的XML(在一行中,参见示例):

<person><name>Joe</name><surname>Black</surname></person>

等。等

看起来像十亿行很长的行不是很好:)我希望有一些组件,那将为我做肮脏的工作。 Thankx

修改 我从数据库中获取XML输入为纯字符串,因此我没有真正的XML文档:(

2 个答案:

答案 0 :(得分:5)

您无需依赖Swing组件进行格式化。您可以尝试非常打印XML并直接在组件中设置格式化输出。这是asked before

答案 1 :(得分:0)

建议您使用基于Java的DOM。我们使用XOM(在这种情况下使用serializer())来获取文本字符串中所需的格式,然后重新绘制组件。

另见How to pretty print XML from Java?

中的示例

将字符串解析为DOM。例如:

Document doc = new Builder().build(new StringReader(yourXML));

使用outputStream

os = new ByteArrayOutputStream();

然后使用序列化程序生成文本:

Serializer serializer = new Serializer(os);
serializer.setTheFormatYouWant(... several options in the class ...);
serializer.output(doc);

然后

os.toString();