gpt4 book ai didi

java - Transformer.transform() 将第一个标签写入与 同一行

转载 作者:行者123 更新时间:2023-11-30 02:34:47 25 4
gpt4 key购买 nike

当我写Document时使用 Transformer 的 transform() 方法转换为 XML,生成的 XML 文档的格式很好 - 所有元素都写在单独的行上并缩进。除了第一个元素与定义写在同一行: <?xml version="1.0" encoding="UTF-8" standalone="no"?><first_element>

我想要的只是 <first_element>写在下一行,如下所示: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<first_element>

有没有办法在将 XML 写入文件之前对其进行预格式化以实现此目的?

最佳答案

这种效果可能取决于您使用的 XSLT 处理器(因为有六个处理器已经实现了 JAXP API,所以告诉我们您使用 Transformer.transform() 调用它并没有向我们提供此信息)。

您还需要告诉我们您是否正在设置 <xsl:output indent="yes"/> - 您的输出“格式良好......并且缩进”这一事实并不能告诉我们一种方式或另一种方式。

一致性规则取决于您使用的 XSLT 版本。一般来说,序列化规则在规范的每个后续版本中都变得更加规范。

如果您使用indent="no" ,则不允许处理器在 XML 声明后插入空格,除非您的转换显式生成它(尽管我知道某些处理器会这样做)。这是因为,如果输出用作外部实体而不是完整文档,则此处的换行符实际上是重要的内容。事实上,当您设置standalone="no"时,输出不能用作外部实体,但序列化规则不会考虑这一点。

如果您使用indent="yes" ,规则允许在此处添加空格,但它们并不要求这样做 - 这是由 XSLT 实现自行决定的。

关于java - Transformer.transform() 将第一个标签写入与 <?xml> 同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43375117/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com