我需要使用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>
Mu所需的输出是
<main>
<bcat>Cat Name b </bcat>
<ccat>Cat Name c </ccat>
<dcat>Cat Name d </dcat>
<fcat>Cat Name f </fcat>
</main>
答案 0 :(得分:2)
您只需要用于复制现有节点的身份模板......
<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>