2010-12-02 15 views
6

मान लीजिए कि मैं निम्न HTML कोड करते हैं:XPath पाठ() अभिव्यक्ति है कि एक नई लाइन शामिल

<a href="/site/somesite/"> 
          somesite</a> 

मेरे सवाल यह है कि मैं एक XPath अभिव्यक्ति है कि somesite लिंक मैच के लिए text() संपत्ति का उपयोग करना चाहिए लिख सकते हैं और मैं स्रोत नहीं बदल सकता?

+0

कृपया स्पष्ट करें (1) ठीक वही है जिसे आप निकालना चाहते हैं, और (2) आप पूरे दस्तावेज़ में इसे विशिष्ट रूप से कैसे पहचान सकते हैं। –

उत्तर

2

मुझे यकीन नहीं है कि आप लिंक टेक्स्ट के आधार पर यूआरएल देखना चाहते हैं या यूआरएल के आधार पर लिंक टेक्स्ट देखना चाहते हैं।

//a[normalize-space() = 'somesite']/@href 

यह आपको पाठ मिल जाएगा: यह आपको यूआरएल मिलेगा

normalize-space(//a[@href = '/site/somesite/']) 
2

उपयोग normalize-space() है, जो दूर प्रमुख और पिछली श्वेत रिक्ति वर्ण फेंक देते हैं (और के बीच में दोहरा रिक्त स्थान गाढ़ा टेक्स्ट को एक ही स्थान में), ताकि आप सामान्यीकृत text() की तुलना कर सकें और भविष्य में फ़िल्टर करने के लिए उपयोग कर सकें।

a[normalize-space(text())='somesite'] 
संबंधित मुद्दे