【问题标题】:<xsl:copy-of copying the namespace present in the root node . How to avoid this? [duplicate]<xsl:copy-of 复制根节点中存在的命名空间。如何避免这种情况? [复制]
【发布时间】:2013-10-15 05:42:02
【问题描述】:

我正在尝试使用&lt;xsl:copy-of select="." /&gt; 复制当前节点下方存在的所有节点,并且它也在复制根节点中存在的命名空间。 如何避免这种情况?

【问题讨论】:

    标签: xml xslt namespaces xml-namespaces


    【解决方案1】:

    如果不需要命名空间,那么在 XSLT 2.0 中,您可以使用 &lt;xsl:copy-of select="." copy-namespaces="no"/&gt;。但是请注意,这只会删除未使用的命名空间节点;它不会改变任何元素或属性的命名空间。如果您希望副本中的元素或属性位于与原始名称不同的命名空间中,那么您需要按照以下方式进行递归浅拷贝:

    <xsl:template match="*">
      <xsl:element name="{local-name()}" namespace="new-namespace">
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:template>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 2013-04-10
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多