将无效的XML格式化为漂亮的格式

时间:2015-05-13 13:55:00

标签: java xml soap

假设XML消息中存在错误:

良构

<Person><Name>Attila</Name><ID>001</ID><Age>45</Age></Person>

不是很好的

<Pxxxon><Name>Attila</9327><ID>001</ID><Age>45</Age></Person>

是否有任何Java库或代码可以将非格式良好的XML消息格式化为:

<Pxxxon>
    <Name>Attila</9327>
    <ID>001</ID>
    <Age>45</Age>
</Person>

据我所知,当前的Java库只将有效的XML消息格式化为这种经过修饰的格式。

2 个答案:

答案 0 :(得分:2)

不,因为你列出的是&#34;无效&#34;实际上 形式不正确

格式良好且有效并不是一回事。

  • 格式良好 表示文本对象符合W3C对XML的要求。
  • 有效 表示格式良好的XML符合指定架构提供的其他要求。

有关详细信息,请参阅Well-formed vs Valid XML,但如果数据格式不正确,根本不是XML ,并且没有XML解析器能够读取它以重新格式化。< / p>

然后您可能会问到非XML解析器的情况?我们会回复,如果它不是XML,它是什么格式的?要使任何解析器能够读取任何数据,必须定义数据的语法。简单地说,类似于XML的数据不足以指定格式,这就是为什么你找不到一个可以漂亮打印你提供的数据样本的工具。

答案 1 :(得分:-1)

很抱歉发布它作为答案,我还没有评论。 我不知道是否有一个lib来做到这一点。但您可以尝试替换字符“&gt;&lt;”到“&gt; \ n&lt;”并且他们验证组以添加代码标识。 也许搜索“\ n”并验证接下来的两个字符是否等于结束标记的开头。如果没有,他们会添加标识。