2012-03-16 80 views
2

这里是XML的exapmle我处理:选择顶层节点使用XPath

<div> 
    <div> 
     <table id="table1"> 
      <div> 
       <table id="table2"/> 
      </div> 
     </table> 
    </div> 
</div> 

我想创建一个XPath表达式,它会选择table1的,不会选择表2。例如,ID在原始文档中不存在。这些文件的结构也可能更复杂。我想选择顶部表格进行处理。

单独使用XPath可以做到这一点吗?

回答

4

这会更加多 “顶级” 表:

//table[not(ancestor::table)] 
1

有几种方法可以做到这一点:

一些例子:

/div/div/table 

//table[.//table] 

(//table)[1] 

我不知道你的XML的样子,但所有上面的例子只会返回第一个表。

//table[1] - this one will return both tables.