xpath 问题

budded 2007-09-06 02:00:10
有一个头晕的xpath查询问题,
XML文件如下:
<root>
<a id="1"/>
<a id="2"/>
<a id="4"/>
<b id="1"/>
<b id="2"/>
<b id="3"/>
</root>

xpath如下:
root/b[@id=/root/a/@id]

用msxml(Delphi)解析(selectNodes)得到如下结果:
<b id="1"/>
但是用xmlSpy解析得到另外一个结果:
<b id="1"/>
<b id="2"/>
我想得到的结果与xmlSpy一样,该怎么做?

[我测试过程中发现,在该xpath查询中@id总是与/root/a/@id中返回的第一个值来匹配,而不是/root/a/@id查询出来的结果集]
...全文
131 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
budded 2007-09-06
  • 打赏
  • 举报
回复
谢谢楼上的!

问题已解决,一句xpath就能解决,我遇到了xmlparser版本问题,msxml3.0不支持root/b[@id=/root/a/@id],换成用msxml4.0以上版本就可以。
hejunbin 2007-09-06
  • 打赏
  • 举报
回复
As = root/a
foreach(As as a)
foreach(root/b[@id=a->id])
小弟觉得好像用只用一句xpath很难实现搂主的要求
用循环吧,写了个假代码O.o
提取,编辑和轻松评估XPath查询。 XPath的助手很容易提取,编辑,并在任何网页评估XPath查询。 重要提示:安装此扩展后,必须重新加载任何现有的选项卡或重新启动Chrome浏览器扩展工作。 说明: 1.打开一个新的标签,并导航到任何网页。 2.按Ctrl-Shift键-X(或OS X命令移-X),或单击工具栏上的XPath的助手按钮,以打开XPath助手控制台。 3.按住Shift键将鼠标悬停在页面上的元素。查询框将不断更新,以显示鼠标指针下方的元件XPath查询,结果框将显示当前查询的结果。 4.如果需要,请在控制台直接编辑XPath查询。结果框会立即反映更改。 5.重复步骤(2)关闭控制台。 如果控制台在你的方式获得,按住Shift键,然后将鼠标移动到它; 它会移动到页面的相对侧。 一个忠告:当渲染HTML表格,浏览器插入人工标记到DOM,这将在随后通过该扩展提取查询显示出来。 Extract, edit, and evaluate XPath queries with ease. XPath Helper makes it easy to extract, edit, and evaluate XPath queries on any webpage. IMPORTANT: After installing this extension, you must reload any existing tabs or restart Chrome for the extension to work. Instructions: 1. Open a new tab and navigate to any webpage. 2. Hit Ctrl-Shift-X (or Command-Shift-X on OS X), or click the XPath Helper button in the toolbar, to open the XPath Helper console. 3. Hold down Shift as you mouse over elements on the page. The query box will continuously update to show the XPath query for the element below the mouse pointer, and the results box will show the results for the current query. 4. If desired, edit the XPath query directly in the console. The results box will immediately reflect your changes. 5. Repeat step (2) to close the console. If the console gets in your way, hold down Shift and then move your mouse over it; it will move to the opposite side of the page. One word of caution: When rendering HTML tables, Chrome inserts artificial tags into the DOM, which will consequently show up in queries extracted by this extension.

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧