2015-07-28 117 views
1

我一直在尝试几个小时,无法让我的XPath选择正确的文本。这里的结构:XPath选择除特定类别以外的子div的所有子节点

<!-- (some divs that don't need to be selected) --> 
<div class="main"> 
    <div> 
    <div> 
     <div class="select"> 
     <div class="child"> 
      <div class="divwithtext"> 
      </div> 
     </div> 
     <div class="child"> 
      <div class="divwithtext"> 
      </div> 
     </div> 
     <div class="child"> 
      <div class="divwithtext"> 
      </div> 
     </div> 
     <div class="dontselect"> 
      <div class="divwithtext"> 
      </div> 
     </div> 
     <div/> 
    </div> 
    </div> 
</div> 

基本上我想选择的class="select"这是class="main"孩子所有的孩子,但我并不需要的class="dontselect"文本。

注意:由于php DOMXPath只支持1.0,所以我使用的是XPath 1.0。

编辑:

问题是我的PHP代码没有返回XPath给我的所有结果。

+1

你能张贴你的努力,并显示其结果XPath查询?这可能会让那些了解这个主题的人更容易帮助你。 – anderas

+0

欢迎来到Stack Overflow!我的问题是要正确设置代码的格式 - 请参阅编辑帮助以获取有关格式化的更多信息。祝你好运! – Wtower

回答

1

一种可能的方式:

//div[@class='main']//div[@class='select']/div[not(@class='dontselect')] 
+1

改变尾巴:'* [not(@ class =“dontselect”)]'all chilren and you lose the close brackhesis – splash58

+0

已经尝试过,因为某些原因只选择了第一个孩子。并且你忘记了)not() – VJamie

+0

的末尾真的很奇怪,如果我只是这样说的话,它只会选择第一个孩子。如果我添加[2]或任何其他数字,它会选择在那个位置的孩子,但从来没有超过一..任何想法? – VJamie

相关问题