我目前正在使用以下代码来缩进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的作用以及它是如何工作的吗?
谢谢! :)
答案 0 :(得分:1)
您正在覆盖indent-amount
包中定义的默认属性org.apache.xml.serializer
。这会启用缩进(因为默认值为0)。
XML,HTML和文本转换输出的输出属性在org.apache.xml.serializer的属性文件中定义 封装
您可以覆盖这些属性的默认值 样式表使用xsl:output元素的属性。您可以 覆盖Xalan特定的默认设置,如下所示:
在stylesheet元素中声明xalan名称空间 (XMLNS:的Xalan =" HTTP://xml.apache.org/xalan")。
使用您指定的命名空间前缀(例如," xalan")重新定义 样式表xsl:output元素中感兴趣的属性(for 例如,xalan:indent-amount =" 5")。以下样式表片段 声明xalan命名空间并将indent-amount设置为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的