2013-04-04 7 views
8

शायद कोई मेरी समस्या का हल ढूंढने में मेरी सहायता कर सकता है। मुझे नीचे दिए गए xml में एक XPath क्वेरी करने की आवश्यकता है जो केवल "फ़ील्ड" नोड्स को खींचती है जो प्रत्यक्ष बाल नोड्स हैं। नीचे दिए गए उदाहरण में, क्वेरी फ़ील्ड E1F1, E1F2 और E1F3 खींचनी चाहिए। अब तक मैं क्वेरी चला रहा हूं: //Field, लेकिन मुझे सभी फ़ील्ड मिलते हैं (जिनमें से E1_1 से संबंधित हैं जो मैं नहीं चाहता)।XPath केवल एक बच्चे के नोड्स में सीधे एक प्रकार के नोड्स का चयन करें

<Entity id="E1"> 
    <Field id="E1F1"></Field> 
    <Field id="E1F2"></Field> 
    <Field id="E1F3"></Field> 
    <Entity id="E1_1"> 
    <Field id="E1_1F1"></Field> 
    <Field id="E1_1F2"></Field> 
    <Field id="E1_1F3"></Field> 
    </Entity> 

धन्यवाद !!

/Entity/Field 

// कहीं भी मिलान हो जाएगा:

उत्तर

15

एक पूर्ण XPath का प्रयोग करें। यदि आप एक एकल फॉरवर्डस्लैश का उपयोग करते हैं, तो मैच सटीक होना चाहिए।

+0

धन्यवाद, यह काम करता है। – gmesorio

0

मेरे मामले में, वांछित नोड मूल तत्व (/ एचटीएमएल) से दूर है, इसलिए स्वीकार किए जाते हैं जवाब मैं क्या जरूरत नहीं है, कुछ खोज काम करने के बाद, मुझे लगता है child बजाय axesdescendant, मुझे आशा है कि इस HTML से कुछ जानकारी प्राप्त करने के लिए scrapy का उपयोग करने वाले किसी व्यक्ति की सहायता कर सकता है।

संबंधित मुद्दे