我有XML和更多名称空间。在输出XML中我需要其中一些和一些必需的。
XML INPUT:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ali="http://www.niso.org/schemas/ali/1.0"
xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns:xlink="http://www.w3.org/1999/xlink">
<child1>child1</child1>
<child2>child2</child2>
<child3>child3</child3>
<child4>child4</child4>
</root>
XSLT:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ali="http://www.niso.org/schemas/ali/1.0"
xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns:xlink="http://www.w3.org/1999/xlink"
extension-element-prefixes="ali"
exclude-result-prefixes="xs ali xsi mml xlink"
version="2.0">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我的输出:
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ali="http://www.niso.org/schemas/ali/1.0" xmlns:mml="http://www.w3.org/1998/Math/MathML"
xmlns:xlink="http://www.w3.org/1999/xlink">
<child1>child1</child1>
<child2>child2</child2>
<child3>child3</child3>
<child4>child4</child4>
</root>
我需要的输出:
需要删除这两个名称空间ali
答案 0 :(得分:0)
你可以试试这个:
<xsl:template match="@* | node()">
<xsl:copy copy-namespaces="no">
<xsl:copy-of select="namespace::* except namespace::ali"/>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>