Java Transformer setOutputProperty()

Java Transformer setOutputProperty(),java,xml,apache,xslt,transformer,Java,Xml,Apache,Xslt,Transformer,我目前正在使用以下代码缩进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:

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}缩进量“
正在进行。URL对于缩进是必不可少的。有人能解释一下此URL的作用和工作原理吗


谢谢!:)

您正在覆盖在
org.apache.xml.serializer
包中定义的默认属性
indent amount
。这将启用缩进(因为默认值为0)

XML、HTML和文本转换输出的输出属性在org.apache.XML.serializer的属性文件中定义 包裹

您可以在中替代这些属性的默认值 使用xsl:output元素的属性创建样式表 覆盖Xalan特定的默认设置,如下所示:

在样式表元素中声明xalan命名空间 (xmlns:xalan=”http://xml.apache.org/xalan"

使用指定的名称空间前缀(例如,“xalan”)重新定义 样式表xsl:output元素中感兴趣的属性(用于 例如,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"/>

您可以在章节
配置序列化输出属性下找到更多信息

所有这些都假设您的序列化程序是特定于xalan的