2014-10-20 15 views
5

gelen bir soru sormak istiyorum:xpath tüm metin (seçim) ama özgü etiket/class özelliği

yapı gibidir: nasıl seçileceği sormak

<div class='item'> 
    <div class='all'> 
     BY 
     <p>ABC</p> 
     <p>DEF</p> 
     <p> 
     <span class="date">19991111</span> 
     </p> 
    </div> 
</div> 

tek istediğim text() (ABC DEF gÖRE) ama ben not() yöntemi span[not(@class, 'date')
buldum ama //div[@class=item]/div[@class='all']//text() ile birleştirmek nasıl bilmiyorum <span class="date">DDD</span> (19991111)

içeriyor

beni yüklemi not(self::span and @class='date') ile * seçici ile size

cevap

2

Böyle bunları birleştirebilirsiniz: XPath Üstü

//div[@class=item]/div[@class='all']//text()[not(parent::span[@class='date'])] 

ebeveyn tarafından eşleşmeyen div[@class='all'] içindeki tüm metin düğümleri seçmek span[@class='date'].

Ayrıca normalize-space() kullanarak boş metin düğümlerini süzmek isteyebilirsiniz

:

//div[@class=item]/div[@class='all']//text()[not(parent::span[@class='date']) and normalize-space()]