2012-04-21 51 views
0

我使用jdom SAXBuilder来获取XML文档。 我的问题是,在返回的文档中,每个元素前面都有一个行分隔符('/ n')。 我看着jdom文档,似乎这是解析器的正常行为。 我想避免它,但我找不到方法。 任何提示将不胜感激。 Flavio如何避免jdom萨克斯构建器包括行分隔符

回答

0

你在哪里看到\ n个字符?如果它们是输入的一部分,那么JDOM将自动保留它们,当你输出JDOM内容时,它们仍然会在那里。如果您想要更改数据的输出方式,可以使用“格式”实例更改输出格式。

如果你希望输出没有\ n字符,那么你应该使用Format.getCompactFormat()格式......但是请注意 - 如果你使用的是新的JDOM 2.0.0,那么就有一个bug,而你应使用github上的修补程序zip:https://github.com/downloads/hunterhacker/jdom/jdom-2.x-issue72.zip。 JDOM-2.0.1将在下周或稍后发布官方修复程序。

如果你想删除\ n字符作为输入/解析过程的一部分,那么你应该考虑使用你自己的JDOMFactory实例(子类DefaultJDOMFactory)并重写文本(...)方法来修剪文本在返回Text实例之前。

否则,在解析XML之后,您可以扫描整个树并根据需要设置\ n字符。

否则,JDOM不会添加\ n字符,除非您提出要求。