微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

xml – xpath,count elements error:“Result是一个包含1个元素的NodeSet”

我开始在w3cschool学习xpath.我正在尝试评估游戏中的玩家数量. (所以计算screenname和text()元素/属性)

这是我的示例xml:

<game>
    <info>
        <name>My Game</name>
        <description>A <i>very</i> interesting game.</description>
        <started>2012-03-01T18:00:00Z</started>
        <players number="2">
            <screenname player="1">Alice</screenname>
            <screenname player="2">Bob</screenname>
        </players>
        <rounds>2</rounds>
        <winner player="2"/>
    </info>
</game>

我使用的xpath查询是:

//game/info/players[count(.//screenname/text())]

但我只得到:

"Result is a NodeSet containing 1 element"

(工具:http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm)

是什么导致这个错误

解决方法

您的XPath查询可能应该是:

count(/game/info/players/screenname)

您现在使用的XPath是要求所有具有非零数量的screenname / text()后代节点的游戏/信息/播放器节点.由于只有一个player元素,因此生成的节点集只包含一个元素.

请记住,XPath是一系列由节(/)分隔的axis-nodetest-predicate表达式(axis :: nodetest [predicate]).只有axis-nodetest是发送到下一步的结果集的一部分 – 谓词永远不会出现在结果集中,因为它仅用于过滤.

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