我有一个基于openerp的web服务生成的xml,它包含许多元素的前缀pp.我想通过选择许多元素使用xslt将该xml文件转换为另一个xml.当我尝试执行转换时,它向我显示错误'前缀xsl for element is not bound'作为前缀pp.我不能声明pp,因为它在许多答案中描述,我怎么可以忽略它的使用字首?
我找到了解决这个问题的办法。我们可以使用此 XSLT 转换来忽略 XML 文件中的所有名称空间和前缀:
<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)