首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用XSLT1.0获取小写的xml节点

如何使用XSLT1.0获取小写的xml节点
EN

Stack Overflow用户
提问于 2015-06-16 05:36:48
回答 1查看 199关注 0票数 2

我需要使用XSLT1.0获取XML节点,它们的小写和值,并将输出显示为XML

代码语言:javascript
复制
        <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>

亩期望产量

代码语言:javascript
复制
        <main>
           <bcat>Cat Name b </bcat>
           <ccat>Cat Name c </ccat>
           <dcat>Cat Name d </dcat>
           <fcat>Cat Name f </fcat>
        </main>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-16 07:41:14

您所需要的只是复制现有节点的标识模板..。

代码语言:javascript
复制
<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

然后是另一个模板,以忽略不是小写的节点。在XSLT1.0中,这可以通过使用translate语句、将大写字母转换为小写以及检查结果是否不同来完成。

代码语言:javascript
复制
<xsl:template match="*[translate(name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') != name()]" />

试试这个XSLT

代码语言:javascript
复制
<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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30859544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档