如何使用xpath获取第一级节点而不是内部相同的节点

时间:2017-03-27 06:36:13

标签: xpath

我尝试了下面的xpath表达式,但它无效:

//para[not(parent::list-item)]/list  

上面的表达式跟踪内部节点  我用**

包装了所需的节点
<book>
  <para>
    **<list>**
      <list-item>
        <para>
          <list>
            <list-item></list-item>
            <list-item></list-item>
            <list-item></list-item>
          </list>
        </para>
      </list-item>
      <list-item></list-item>
    </list>
  </para>
</book>
<para>
  **<list>**
    <list-item>
      <para>
        <list>
          <list-item></list-item>
          <list-item></list-item>
          <list-item></list-item>
        </list>
      </para>
    </list-item>
    <list-item></list-item>
  </list>
</para>

1 个答案:

答案 0 :(得分:0)

我没有看到你的xpath没有做到这一点,在你提供的示例中它只选择了顶级list项。

然而,这是另一种方法 - 选择不在list-item节点内的所有//para/list[not(ancestor::list-item)]

$search_term=$this->input->post('textboxName');
$search_term="%".$search_term."%";
$sql="SELECT * FROM table WHERE field LIKE ? ";
$query=$this->db->query($sql,array($search_term));
$res=$query->result();