【问题标题】:New line missing when transform xml using apache transformer使用 apache 转换器转换 xml 时缺少新行
【发布时间】:2015-07-15 15:42:06
【问题描述】:

我按照this 的示例了解如何编写XML。它工作正常,但问题是当我替换这一行时:

TransformerFactory transformerFactory = TransformerFactory.newInstance();

使用我的网络应用程序中使用的转换器:

org.apache.xalan.processor.TransformerFactoryImpl

那么XML 的开头为:

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

这是问题,因为我无法验证它。 xs:schema 应该在新的一行。有没有我可以用来修复它并仍然使用这个变压器的选项?

【问题讨论】:

  • 请解释“问题,因为我无法验证它”。所描述的 XML 完全有效。
  • 不是我只发布了 1. 行并且 xs:schema 没有结束标记。这是因为错误:“序言中不允许内容。” .但这不是问题的一部分。我需要它来换行,因为用于格式化。
  • 试试这个:transformer.setOutputProperty(OutputKeys.INDENT,"yes");
  • 我试了一下,但1.行仍然没有格式化
  • @hudi 将 xml 声明与其他所有内容放在同一行不应导致任何问题,并且是完全有效的 XML。问题是由其他原因引起的。也许它是你的编码?尝试将其更改为 UTF-16 或寻找使用不同变压器可能存在问题的其他区域。

标签: java xml xsd


【解决方案1】:

你可以要求transformer不要添加xml声明:

transformer.setOutputProperty("omit-xml-declaration", "yes");

这可能会解决您的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多