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

标签 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 消息格式化为这种美化格式。

最佳答案

不,因为您列为“无效”的内容实际上格式不正确

格式正确和有效不是一回事。

  • Well-formed 表示文本对象符合 W3C 对 XML 的要求。
  • 有效 表示格式正确的 XML 满足指定架构给出的额外要求。

参见 Well-formed vs Valid XML了解更多详细信息,但如果数据格式不正确,它根本不是 XML,并且没有 XML 解析器能够读取它以重新格式化它。

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

关于java - 将无效的 XML 格式化为漂亮的格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217003/

相关文章:

python - 无法提取 SessionId

java - 无法在 Spring MVC 中发送 POST 请求

带有 Jetty 的 Java 8 on linux 内存问题

ruby-on-rails - 在 Rails 3 中将 xml 转换为 ActiveRecord 对象的内置方法?

java - 内存使用量突然激增

java - 使用 XPath 和 XML XPath Api 获取 Soap Body

JavaFx错误: Exception in Application start method

java - 如何使用 JDK 10 安装 Netbeans

java - 如何使用 xsd 限制 xml 文件中的 ENTITY 标记

java - ws 消费者服务地址中的动态属性