2016-04-12 29 views
1

Hangi XPath li'un içinde bulunan belirli bir etikette bulunan b içindeki metni ayıklamak gerekiyor?Etiketli metin değeri için XPath?

örnek kod:

<li>Job category:<b>Engineering</b></li> 
<li>Job Type:<b>Full Time</b></li> 

örnek sayfa: http://tiruvallur.click.in/job-vacancy-in-uk-needed-engineers-send-your-cv-c98-v15807437

+0

Değişiklikleri geri almam, 1 tane daha satır ekledim, neden sildin? İlk defa belirsiz olduğum için üzgünüm, bu forumda yeniyim ve yöneticimi ilk defa sorumu düzenlerken görüyorum. – Future

+0

Yönetici değilim, sadece mevcut ve gelecekteki okuyucular için siteyi daha iyi hale getirmeye çalışan düzenleme ayrıcalıklarına sahip deneyimli bir kullanıcı değilim. Düzenlemeleri ayarlamak için lütfen çekinmeyin; bu senin sorunun. Onları neden yaptığımı anlamadan ellerinden geleni reddetmemenizi rica ediyorum. – kjhughes

+0

Sorunun özüne dönelim. Önerilen yanıtları tam olarak nasıl kullandığınızı ve hangi sonuçları aldığınızı (belirli hatalar dahil) paylaşıyorsanız, çıkmazınızı çözebilmemiz gerekir. Sağladığım iki XPath'ın hem numunelerinize (ortak bir kök öğeye sarılı) karşı hem de her durumda talep edildiği şekilde test edildiğini bilmenize yardımcı olabilir. – kjhughes

cevap

1

Bu XPath ifadesi

string(//li[starts-with(., 'Job Type:')]/b) 

senin örneğin

Full Time 

seçecektir.

Alternatif ve muhtemelen daha sağlam, sen dize değerine etiketten sonra alt dizeyi alabilir li

substring-after(//li[starts-with(., 'Job Type:')], 'Job Type:') 

da sahte boşluğu yok etmek için aynı dizeyi

Full Time 

seçecektir Kullanılabilir normalize-space():

+0

XPATH'niz bu web sitesinden hiçbir şey almıyor – Future

+0

Sağladığım XPath'ın hem örnekleriniz hem de sorunuza bağlı web sayfasında çalışıyorum. Web sayfası aslında daha fazla boşluk içeriyor, ancak bunu normalize-boşluk() ile kolayca düzeltebilirsiniz. Cevap güncellendi. Bunun dışında, eğer senin için çalışmıyorsa, yol boyunca başka bir hata yapıyorsun. Çalışmanızı iki kez kontrol edin ve/veya tam olarak ne yaptığınızı kontrol edin, böylece kontrol etmenize yardımcı olabiliriz. – kjhughes

0

bu deneyin: // * [içeriyor (text(), 'sizin etiketli-name')]/b/metin()

ex:

//*[contains(text(),'Job category')]/b/text() 
+0

XPATH'niz bu web sitesinden herhangi bir şey almıyor – Future

+0

Ne tür sorunlarla karşılaştığınızı bilmiyorum, kodunuzun ekran görüntülerini bana ver. Yukarıdakileri denedim ve iyi çalışıyordum. Aşağıdaki snip :: [image] 'yi görebilirsiniz (https://s26.postimg.org/y0h8kc47d/xpath.png) –

+0

www.import.io yazılımını kullanıyorum ve XPATH’nız, Firefox'ta çalışın. Birden çok denemeden sonra, verileri ayıklayan bir XPATH buldum: // li [içerir (., "İş Türü")]/b – Future