我有以下
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']) < 1"> <!-- do what ever !--> </xsl:if>
但它似乎没有用.关于尝试将数字转换为布尔值我有一个例外吗?有什么建议?
更新:
我发现我可以使用:
<xsl:if test="count(setting[type='apartment' and context='floor']) < 1">
解决方法
count内部的语句返回布尔值,这是不正确的. count()要求node-set能够计算节点.如果这是需要具有所需值的type和appartment元素的相同设置元素,那么您可能正在查看:
count(setting[type='apartment' and context='floor']) < 1
否则,如果您需要一个具有type = apartment或context = floor的设置元素的总和(不包括具有所需值的两个元素的计数设置),您可能需要:
count(setting[type='apartment'] | setting[context='floor']) < 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。