我需要使用 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>
最佳答案
您所需要的只是复制现有节点的身份模板...
<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>
关于xml - 如何使用 XSLT 1.0 获取小写的 xml 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30859544/