加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

计算具有多个条件的xml元素

发布时间:2020-12-16 22:49:41 所属栏目:百科 来源:网络整理
导读:我有以下 XML代码,我试图使用xlst进行转换: setting typehouse/type contextroof/context valueblue/value/settingsetting typehouse/type contextkitchen/context valuered/value/settingsetting typehouse/type contextfloor/context valueblack/value/se
我有以下 XML代码,我试图使用xlst进行转换:

<setting>
    <type>house</type>
    <context>roof</context>
    <value>blue</value>
</setting>
<setting>
    <type>house</type>
    <context>kitchen</context>
    <value>red</value>
</setting>
<setting>
    <type>house</type>
    <context>floor</context>
    <value>black</value>
</setting>
<setting>
    <type>apartment</type>
    <context>roof</context>
    <value>red</value>
</setting>

我想知道setting->类型“apartment”是否具有“context-> floor”.

我尝试这样做:

<xsl:if test="count(setting[type='apartment'] and setting[context='floor']) &lt; 1">
    <!-- do what ever !-->
</xsl:if>

但它似乎没有用.关于尝试将数字转换为布尔值我有一个例外吗?有什么建议?

更新:
我发现我可以使用:

<xsl:if test="count(setting[type='apartment' and context='floor']) &lt; 1">

解决方法

count内部的语句返回布尔值,这是不正确的. count()要求node-set能够计算节点.如果这是需要具有所需值的type和appartment元素的相同设置元素,那么您可能正在查看:

count(setting[type='apartment' and context='floor']) &lt; 1

否则,如果您需要一个具有type = apartment或context = floor的设置元素的总和(不包括具有所需值的两个元素的计数设置),您可能需要:

count(setting[type='apartment'] | setting[context='floor']) &lt; 1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读