如何在xsl转换时间内忽略名称空间

mal*_*ugu 8 xslt

我有一个xml如下.

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns="http://www.books.com/SRK">
    <name>English</name>
</books
Run Code Online (Sandbox Code Playgroud)

使用xsl进行翻译后,我需要以下输出.

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <name>English</name>
</books>
Run Code Online (Sandbox Code Playgroud)

我需要一个xsl来忽略命名空间.我已经尝试了一些东西,但它没有使用命名空间.

我需要你的帮助.非常感谢你的帮助.

Dim*_*hev 6

这种转变:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="@*|node()[not(self::*)]">
  <xsl:copy/>
 </xsl:template>

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

当应用于提供的XML文档时:

<books xmlns="http://www.books.com/SRK">
    <name>English</name>
</books>
Run Code Online (Sandbox Code Playgroud)

产生想要的,正确的结果:

<books>
   <name>English</name>
</books>
Run Code Online (Sandbox Code Playgroud)

  • @malledugu:为了在上下文中使用这些模板,您需要了解XSLT处理模型的工作原理,即XSLT如何决定应用哪些模板到哪些节点.参见例如http://www.soe.ucsc.edu/classes/cmps183/Spring06/lectures/XSLT-language-processing.pdf (4认同)