gpt4 book ai didi

xml - XSLT - 删除重复的 namespace 声明

转载 作者:行者123 更新时间:2023-12-05 05:20:30 24 4
gpt4 key购买 nike

我有以下 xml:

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig">
<ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
</ds:SignedInfo>
<ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfoData xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/>
</ds:SignedInfo/>
</ds:Signature>

问题是,虽然我需要第一个 ds <ds:Signature> 中的命名空间声明.以下的(在 <ds:SignedInfo><ds:SignedInfoData> 中)不是必需的。有什么方法可以使用 XSLT 1.0 删除重复的 namespace 声明来获取此输出:

<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="xmldsig">
<ds:SignedInfo>
</ds:SignedInfo>
<ds:SignedInfo>
<ds:SignedInfoData/>
</ds:SignedInfo>
</ds:Signature>

最佳答案

消除重复的命名空间声明是通过复制输入来实现的,例如使用身份转换 http://xsltransform.net/jxDigU1/1

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:transform>

关于xml - XSLT - 删除重复的 namespace 声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44568027/

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