忽略XSLT中的命名空间

问题描述 投票:1回答:1

我有输入文件带有不同的命名空间。但是,根据我的要求,我需要用1 xslt来处理它。

输入文件1:

    <header xmlns="urn:xyz:hello">
       <body>
           <element1>hi</element1>
           <element2>sen</element2>
       </body>
    </header>

输入文件2:

<header xmlns="urn:abc:hello1">
   <body>
       <element1>hi</element1>
       <element2>sam</element2>
   </body>
</header>

与上面的示例类似,我将获得具有不同命名空间urn:cdf:well, urn:cdf:hello, ....的文件

我如何处理1 xslt?

非常感谢您的建议。

谢谢森

xslt
1个回答
1
投票

而不是身份模板使用以下模板,“删除”任何命名空间。

<xsl:template match="*">
  <xsl:element name="{local-name()}">
    <xsl:apply-templates select="@*|node()"/>
  </xsl:element>
</xsl:template>

<xsl:template match="@*">
  <xsl:attribute name="{local-name()}">
    <xsl:value-of select="."/>
  </xsl:attribute>
</xsl:template>
© www.soinside.com 2019 - 2024. All rights reserved.