我目前正在使用以下代码来缩进XML:
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
这很好地缩进了代码,但是,我不确定http://xml.apache.org/xslt}indent-amount"
在做什么。URL 对于缩进至关重要。有人可以解释一下这个URL的作用以及它是如何工作的吗?
谢谢!:)
您正在覆盖包中定义的默认属性indent-amount
org.apache.xml.serializer
。这将启用缩进(因为默认值为 0(。
XML、HTML 和文本转换输出的输出属性在 org.apache.xml.serializer 的属性文件中定义。 包。
您可以在您的 使用 XSL:输出元素的属性的样式表。您可以 覆盖 Xalan 特定的默认设置,如下所示:
在样式表元素中声明 xalan 命名空间 (xmlns:xalan="http://xml.apache.org/xalan"(。
使用您分配的命名空间前缀(例如,"xalan"(重新定义 样式表中感兴趣的属性 XSL:输出元素(对于 例如,xalan:indent-amount="5"(。以下样式表片段 声明 Xalan 命名空间并将缩进量设置为 2:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xalan"> <xsl:output method="xml" encoding="UTF-8" indent="yes" xalan:indent-amount="2"/>
您可以在第Configuring serialization output properties
章下的 http://xml.apache.org/xalan-j/usagepatterns.html 中找到更多信息。
所有这些都假设您的序列化程序是特定于 xalan 的