How do I parse XML with attribute in python? -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 14 जवाब
मेरे पास एक XML है जो कई पंक्तियों की संख्या विशेषीकृत एट्रिब्यूट आईडी के लिए, तत्व का नाम और मूल्य मूल्य पूछे जाने चाहिए। उदाहरण के लिए, मेरा पेड़ ऐसा दिखता है:
& lt; मेनू & gt; & lt; खाद्य आईडी = "1" & gt; & lt; नाम & gt; पेस्टो चिकन सैंडविच & lt; / name & gt; & LT; कीमत & gt; $ 7.50 & lt; / कीमत & gt; & Lt; / भोजन & gt; & lt; खाद्य आईडी = "2" & gt; & lt; नाम & gt; चिपोटल चिकन पिज्जा & lt; / name & gt; & LT; कीमत & gt; $ 12.00 & lt; / कीमत & gt; & Lt; / भोजन & gt; & Lt; खाद्य आईडी = "3" & gt; & LT; नाम & gt; बरिटो & lt; / नाम & gt; & LT; कीमत & gt; $ 6.20 & lt; / कीमत & gt; & Lt; / भोजन & gt; & Lt; / मेनू & gt;
मैं किसी विशेष आईडी (1 या 2 या 3) के नाम और मूल्य का मूल्य कैसे प्राप्त कर सकता हूं?
मैंने पार्स करने के लिए minidom की कोशिश की मेरा कोड है: xml.dom आयात से minidom xmldoc = minidom.parse ('D: /test.xml') नोड्स = xmldoc.getElementsByTagName ('भोजन') नोड में नोड के लिए: यदि नोड। विशेषताएँ ['आईडी']। मान == '1': ????????????????????
और मैं नाम और मूल्य टैग मान पुनर्प्राप्त करने में अक्षम हूं। मैंने बहुत सारे उदाहरणों की जांच की और कोई भी संतुष्ट नहीं हुआ।
यह काम किया कोड निम्नानुसार है:
आयात xml.etree.ElementTree ईटी वृक्ष = ईटी। के रूप में ('डी: /test.xml') रूट = tree.getroot () रूट में बच्चे के लिए: परीक्षण = child.get ('id') यदि परीक्षण == '3': print child.tag, child.attrib प्रिंट child.find ('name')। पाठ प्रिंट child.find ('price') पाठ
मानक जांचें यह आपको एक XML फ़ाइल को एक पायथन ऑब्जेक्ट में एलेमेंटट्री नामक पार्स करने की अनुमति देता है। इसके बाद आप इस ऑब्जेक्ट पर विभिन्न तरीकों को कॉल कर सकते हैं, जैसे कि
.findall ("। / Food / name")।
यह आपको प्रारंभ कर सकता है:
आयात xml.etree.ElementTree ईटी वृक्ष के रूप में = ET.parse ('D: /test.xml') रूट = tree.getroot () def get_info (food_id): root.findall में बच्चे के लिए ("* [ आउटपुट:
कोड> पेस्टो चिकन सैंडविच $ 7.50
Comments
Post a Comment