我需要使用 XSLT 1.0 获取小写的 XML 节点及其值,并将输出显示为 XML
<main>
<ACAT>Cat Name A </ACAT>
<bcat>Cat Name b </bcat>
<ccat>Cat Name c </ccat>
<dcat>Cat Name d </dcat>
<ECAT>Cat Name E </ECAT>
<fcat>Cat Name f </fcat>
</main>
亩期望输出为
<main>
<bcat>Cat Name b </bcat>
<ccat>Cat Name c </ccat>
<dcat>Cat Name d </dcat>
<fcat>Cat Name f </fcat>
</main>
您只需要标识模板即可复制现有节点...
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
然后是另一个模板来忽略非小写节点。在 XSLT 1.0 中,这可以通过使用 translate 语句来完成,将大写字母转换为小写字母,并检查结果是否不同
<xsl:template match="*[translate(name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') != name()]" />
试试这个 XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="*[translate(name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') != name()]" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>