gpt4 book ai didi

xslt - 从输出中省略不需要的命名空间

转载 作者:行者123 更新时间:2023-12-04 11:54:36 24 4
gpt4 key购买 nike

我的 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', . )" />

最佳答案

正如 Dimitre 已经说过的,如果您不使用 xlink XSLT 中任何位置的命名空间,您应该只删除其命名空间声明。但是,如果您的 XSLT 实际上在您没有向我们展示的地方使用它,您可以使用 exclude-result-prefixes 防止它被输出。属性:

<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xlink="http://www.w3.org/1999/xlink"
exclude-result-prefixes="xlink">

关于xslt - 从输出中省略不需要的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15582825/

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