+ -
当前位置:首页 → 问答吧 → 请问一个xpath查询父节点的问题

请问一个xpath查询父节点的问题

时间:2005-10-12

来源:互联网

在使用 xpath 的时候 我需要查询 一个符合条件的节点的父节点的位置 我应该怎么写这个xpath呢

比如 如果我的xml片段是下面这样的
<?xml version="1.0" encoding="utf-8"?> <datatable> <row tableidid="mapping" file="resource/xmlibrary/mapping.xml" /> <row tableidid="master" file="resource/xmlibrary/master.xml" /> </datatable>
   提示:您可以先修改部分代码再运行

我可以根据 //row[@tableidid='mapping'] 把这个节点找到 因为我需要获取 file 这个属性

如果当 xml 片段类似于
<?xml version="1.0" encoding="utf-8"?> <datatable> <row> <tableidid>mapping</tableidid> <file>resource/xmlibrary/mapping.xml</file> </row>
   提示:您可以先修改部分代码再运行

我使用xpath语句 //row[text(tableidid)='mapping'] 只能找到 <tableidid>这个节点 就不能获取 包含了<tableidid>mapping</tableidid>这个节点条件的父节点<row> 我就取不到需要的 file 节点的内容

请论坛的大人们指点一下小弟

谢谢

[ 本帖由 vience 最后编辑于 2005-10-12 22:12 ]

作者: vience   发布时间: 2005-10-12

/descenant::row[child::tableidid='mapping']

作者: withjun   发布时间: 2005-10-24

谢谢楼上回答

我后来是这么写的
//row/tableidid[text()='mapping']/parent::*
   提示:您可以先修改部分代码再运行

继续请问楼上兄弟 这两种方式 一种查询父节点的子节点 一种是根据子节点查询父节点 两种操作方式哪一种执行的速度更加快呢 如果效率有差异那么是什么原因造成的呢

谢谢

[ 本帖由 vience 最后编辑于 2005-10-25 19:07 ]

作者: vience   发布时间: 2005-10-25