2015-07-28 120 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

相關問題