【发布时间】:2013-03-13 01:06:55
【问题描述】:
我的 XSLT 正在输出一些带有xmlns:x="http://something" 属性的标签...如何避免这个冗余属性?输出 XML 从不使用,既不在 x:tag 中,也不在 x:attribute 中。
XML 示例:
<root><p>Hello</p><p>world</p></root>
XSL 示例:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink">
<xsl:output encoding="UTF-8" method="xml" version="1.0" indent="no"/>
<xsl:template match="root"><foo>
<xsl:for-each select="p">
<p><xsl:value-of select="." /></p>
</xsl:for-each></foo>
<xsl:for-each select="x">
<link xlink:href="{x}" />
</xsl:for-each></foo>
</xsl:template>
XML 输出示例:
<foo>
<p xmlns:xlink="http://www.w3.org/1999/xlink">Hello</p>
<p xmlns:xlink="http://www.w3.org/1999/xlink">world</p>
</foo>
xmlns:xlink 是开销,没有使用!
A typical case 其中 XSLT 必须使用命名空间但输出不是:
<xsl:value-of select="php:function('regFunction', . )" />
【问题讨论】:
-
请编辑问题并提供源 XML 文档和转换代码。没有这些就不得不猜测了。
-
好的,我编辑了:XML-IN、XSLT 和 XML-OUT 的源代码。
标签: xslt output xml-namespaces