gpt4 book ai didi

xml - 如何在 XSLT 1.0 中模仿复制命名空间 ="no"?

转载 作者:数据小太阳 更新时间:2023-10-29 01:43:09 25 4
gpt4 key购买 nike

我想在不支持“复制命名空间”的 XSLT 1.0 中重写这个 xslt 部分。

<xsl:copy-of copy-namespaces="no" select="maml:alertSet/maml:alert" />

如何?

最佳答案

以下模仿 XSLT 2.0 构造:

以一种模式创建模板,该模式将在没有命名空间的情况下重新构建您的节点:

<!-- generate a new element in the same namespace as the matched element,
copying its attributes, but without copying its unused namespace nodes,
then continue processing content in the "copy-no-namepaces" mode -->

<xsl:template match="*" mode="copy-no-namespaces">
<xsl:element name="{local-name()}" namespace="{namespace-uri()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()" mode="copy-no-namespaces"/>
</xsl:element>
</xsl:template>

<xsl:template match="comment()| processing-instruction()" mode="copy-no-namespaces">
<xsl:copy/>
</xsl:template>

在该模式下为所需元素应用模板:

<xsl:apply-templates  select="maml:alertSet/maml:alert" mode="copy-no-namespaces"/>

关于xml - 如何在 XSLT 1.0 中模仿复制命名空间 ="no"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026224/

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