ruby - What does it take to get the "LyricArtist" from this XML feed using Nokogiri? -


सबसे पहले xml:

  डॉक = Nokogiri :: एक्सएमएल (खुला ( "http: //api.chartlyrics.com/apiv1.asmx//GetLyric?lyricId=90&lyricCheckSum=9600c891e35f602eb6e1605fb7b5229e "))  

सफलतापूर्वक दस्तावेज़ सामग्री हड़पने होगा।

इस बिंदु के बाद मैं अंदर पाने में असमर्थ हूं और डेटा प्राप्त करता हूं और मुझे यकीन नहीं है क्यों?

उदाहरण के लिए, मैं उम्मीद करता हूं:

  doc.xpath ("// LyricArtist ")  

कलाकार आराम से बैठ जाएं करने के लिए, लेकिन यह।

मैं एक ही बात जैसे कि डिफ़ॉल्ट आरएसएस फ़ीड के रूप में अन्य फ़ीड, के साथ की कोशिश की है यह नहीं है कि किसी भी वर्डप्रेस स्थापना प्रदान करता है और अगर मैं ऐसा कुछ करता हूं:

  doc.xpath ("// link")  

मुझे सभी "लिंक" की एक सूची मिलती है ।

मुझे निश्चित रूप से कुछ याद आ रहा है और मैं आपके इनपुट को पसंद करूंगा। धन्यवाद!

XML तत्व नामस्थान योग्य हैं और http: // API .chartlyrics.com /

यदि आप एक्सएमएल को देखते हैं तो आप देखेंगे कि दस्तावेज़ तत्व में एक नेमस्पेस डिकल्रटेड है:

  & lt; getLyricResult xmlns: xsi = "http://www.w3.org / 2001 / XMLSchema- उदाहरण "xmlns: xsd =" http://www.w3.org/2001/XMLSchema "xmlns =" ​​http://api.chartlyrics.com/ "& gt;  

एक तत्व है कि एक नाम स्थान के लिए बाध्य है के आधार पर मिलान करने के लिए, आप या तो एक नामस्थान उपसर्ग कि यूआरआई के लिए बाध्य घोषित करने और अपने xpath एक्सप्रेशन में है कि नामस्थान उपसर्ग का उपयोग करें, या एक का उपयोग करने की आवश्यकता है xpath एक्सप्रेशन है कि या तो नामस्थान पर ध्यान नहीं देता या अलग ढंग से मेल खाता है।

आप तत्वों पर मिलान कर सकते हैं और फिर स्थानीय नाम () घोषित नाम स्थान की परवाह किए बिना, तत्व नाम से मिलान करने का उपयोग करें।

  // * [स्थानीय नाम () = 'LyricArtist']  
स्थानीय

आप और अधिक सटीक होना चाहते हैं, तो आप उपयोग कर सकते हैं -नाम () के लिए तत्व का नाम और नामस्थान-यूरी () से मेल करने के लिए घोषित नामस्थान मैच।

  // * [local-name ( ) = 'लिकएर्टिस्ट' और नेमस्पेस-यूरी () = 'http: //api.chartlyrics.com/']  

दूसरा उदाहरण समान तत्वों पर मिलान करने से रोकता है स्थानीय-नाम () अलग-अलग नामस्थानों के लिए बाध्य थे। इस विशिष्ट उदाहरण के लिए कोई समस्या नहीं हो सकती, लेकिन ऐसा कुछ है जिसे आपको अवगत होना चाहिए। नामस्थानों को विशिष्ट रूप से नोड्स अर्हता प्राप्त करने के लिए उपयोग किया जाता है और संघर्ष के बारे में चिंतित किए बिना कुछ शब्दों को समान "नाम" का उपयोग करने की अनुमति देता है।


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -