首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何选择xpath 1.0中的第n项?

如何选择xpath 1.0中的第n项?
EN

Stack Overflow用户
提问于 2009-03-18 11:26:02
回答 2查看 16.1K关注 0票数 16

我有一些XML和一个XPath查询。我正在使用Yahoo!widgets,所以我使用XPath 1.0。

下面是我的XML的要点……

代码语言:javascript
复制
<root>
    <cat num="SOURCE">
        <movie>
            <swf>speak.swf</swf> 
            <width>250</width> 
            <height>150</height> 
            <colour>cccccc</colour> 
        </movie>
        <movie>
            <swf>inertia.swf</swf> 
            <width>380</width> 
            <height>130</height> 
            <colour>9a9a9a</colour> 
        </movie>
        <movie>
            <swf>swing.swf</swf> 
            <width>380</width> 
            <height>130</height> 
            <colour>9A9A9A</colour> 
        </movie>
        ....

现在..。如果我运行以下查询:

代码语言:javascript
复制
"root/cat/movie/swf"

我得到了42个结果,所有'swf‘节点都是正确的。

但是,如果我只想要第六个,我希望能够做到:

代码语言:javascript
复制
"root/cat/movie/swf[6]"

但是我得到了一个包含0个节点的列表。

奇怪的是,使用1会得到所有42个节点的列表。

显然,我在这里遗漏了一些非常基本的东西。有人看到这是什么了吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-03-18 11:32:31

我想知道你的意思是:

代码语言:javascript
复制
"root/cat/movie[6]/swf"

(获取第六部电影的swf )

或者:

代码语言:javascript
复制
"(root/cat/movie/swf)[6]"

(查找所有电影/swf元素,并选择第6个元素)

当每个电影只有一个swf时,这两个是相同的;如果一个电影有零个或多个swf元素,则两个查询略有不同……

票数 33
EN

Stack Overflow用户

发布于 2009-03-18 11:32:47

代码语言:javascript
复制
"root/cat/movie/swf[6]"

指的是"root/cat/movie"上下文中的每个第6个<swf>节点。

每个节点只有一个<swf>节点。

你的意思是:

代码语言:javascript
复制
"root/cat/movie[6]/swf"
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/657855

复制
相关文章

相似问题

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