xml – 检查节点集是否包含XSLT中的任何值

我需要一些XSLT语法的帮助.这是我的场景,我有一个 XML文件,需要转换为 XML文件的不同外观,我有几个部分,如果特定节点集不包含任何值,则不应处理整个部分.

以下是XML的示例:

<Dates>
    <Date>
        <VALUE1></VALUE1>
        <VALUE2></VALUE2>
        <VALUE3></VALUE3>
        <VALUE4></VALUE4>
        <VALUE5>3333</VALUE5>
    </Date>
    <Date>
        <VALUE1>AAAA</VALUE1>
        <VALUE2></VALUE2>
        <VALUE3>JJJJ</VALUE3>
        <VALUE4></VALUE4>
        <VALUE5>12345</VALUE5>
    </Date>
</Dates>

screenshot of xml

这是我的XSLT,if语句不能正常工作

<xsl:for-each select="Level1/Level2/Level3">
    <xsl:if test="@VALUE1!=''">                    
    <MyDates>               
            <value_1>
                <xsl:value-of select="VALUE1"/> 
            </value_1>
            <value_2>
                <xsl:value-of select="VALUE2"/> 
            </value_2>
            <value_3>
                <xsl:value-of select="VALUE3"/> 
            </value_3>
            <value_4>
                <xsl:value-of select="VALUE4"/> 
            </value_4>       
    </MyDates>
    </xsl:if>   
</xsl:for-each>

所以你可以看到我基本上希望所有节点(VALUE1,VALUE2,VALUE3等)都有值,否则不处理并转到下一节

(如果你看不到XML的想法,我也做了一个屏幕截图)

您正在尝试匹配文档中不存在的名称“Level1”,“Level2”等的xml元素.然后,您正在寻找最后一个元素的VALUE1属性.

我想你想要这样的东西:

<xsl:for-each select="Dates">
    <MyDates>
        <xsl:for-each select="Date">
        <xsl:if test="not(*[.=''])">
            <MyDate>
                <value_1>
                    <xsl:value-of select="VALUE1"/> 
                </value_1>
                <value_2>
                    <xsl:value-of select="VALUE2"/> 
                </value_2>
                <value_3>
                    <xsl:value-of select="VALUE3"/> 
                </value_3>
                <value_4>
                    <xsl:value-of select="VALUE4"/> 
                </value_4>               
            </MyDate>
        </xsl:if>
        </xsl:for-each>
    </MyDates>
</xsl:for-each>

只要相应Date元素中的每个值都不为空,这将添加一个新的MyDate元素.

它的作用是什么

>为每个Dates元素创建一个新的MyDates元素.
>检查每个Date元素. *匹配所有孩子. [.=”]表示“空”.最后,它包含了所有这些.这意味着如果没有任何子项为空,则if仅传递.
>如果没有子项为空,则会创建一个新的MyDate元素,其中包含每个值的副本.

您可能还想查看W3Schools XSLXPath教程.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇