2012-12-26 20 views
5

मैं निम्नलिखित xml फ़ाइल पर एक xpath क्वेरी बनाने के लिए कोशिश कर रहा हूँ:xpath जहां खंड

<recordGroup> 
    <records> 
     <year>1985</year> 
     <album> 
      <name> album1 </name> 
      <artist>artist1 </artist> 
      <label> labelA</label> 
     </album>  
     <album> 
      <name>album2 </name> 
      <artist>artist2 </artist> 
      <label> labelB</label> 
     </album>  
    </records>  
    <records> 
     <year>1986</year> 
     <album> 
      <name>album3 </name> 
      <artist> artist1 </artist> 
      <label>labelC</label> 
     </album>  
     <album> 
      <name>album4 </name> 
      <artist>artist2</artist> 
      <label> labelA</label> 
     </album>  
    </records> 

</recordGroup> 

मैं निम्न क्वेरी प्राप्त करना चाहते हैं: सभी रिकॉर्ड का चयन (कलाकार, नाम & वर्ष) जहां लेबल = 'LabelA '।

एक्सएमएल संरचना इस डेटा को प्रदर्शित करने के लिए अपरिवर्तनीय नहीं हो सकती है, लेकिन मुझे यह स्ट्रीम किसी अन्य सॉफ़्टवेयर से मिल रही है, इसलिए मैं इसे बदल नहीं सकता।

कोई सुझाव?

उत्तर

6

यह पूर्ण records कि labelA के लेबल के साथ एक एलबम को शामिल वापस लाना होगा

//records[album/label='labelA'] 

तुम भी

//records[album/label='labelA']/*[self::year or self::album[label='labelA']] 

इस्तेमाल कर सकते हैं कि वापस आ जाएगी केवल year और पूर्ण album कि labelA

+0

मैं एक बहुत बुरा समाधान है कि मैं के रूप में अपने समाधान मेरा तुलना में अधिक कुशल लग रहा है का उपयोग नहीं होगा के साथ आया मेल खाता है। आपका बहुत बहुत धन्यवाद! – Valkyrie

0

इस प्रयास करें:

var = डॉक (/ recordGroup/रिकॉर्ड [एल्बम [@ लेबल = "LabelA"]]);

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