如何从 Transformer XML 文档顶部删除 XMLNS 引用
How To Remove XMLNS reference from top of Transformer XML Document
不确定如何解决这个问题,我有一个 XML 文档 post 从 XSLT 转换而来。
需要从文档标签中删除整个文本字符串 xmlns="urn.......
如有任何帮助或建议,我们将不胜感激。
非常感谢,
您误解了需求的性质。命名空间声明将 XML 文档中的所有元素(更准确地说,范围内没有覆盖命名空间声明的所有元素)放在一个命名空间中。为了删除它,您实际上必须将所有这些元素重命名为它们的本地名称。
假设其他命名空间中没有元素(也没有需要保留的注释或处理指令),你可以这样做:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
不确定如何解决这个问题,我有一个 XML 文档 post 从 XSLT 转换而来。
需要从文档标签中删除整个文本字符串 xmlns="urn.......
如有任何帮助或建议,我们将不胜感激。
非常感谢,
您误解了需求的性质。命名空间声明将 XML 文档中的所有元素(更准确地说,范围内没有覆盖命名空间声明的所有元素)放在一个命名空间中。为了删除它,您实际上必须将所有这些元素重命名为它们的本地名称。
假设其他命名空间中没有元素(也没有需要保留的注释或处理指令),你可以这样做:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>