xml - Get parent node using child node lxml python -
इस के लिए xml
,
xmldata = "" " & Lt; स्थानों & gt; & lt; महाद्वीप क्षेत्र = "अफ्रीका" & gt; देश आईडी = "84" देशनाम = "अल्जीरिया" & gt; & lt; / देश & gt; & lt; / महाद्वीप & gt; & lt; महाद्वीप क्षेत्र = "एशिया" & gt; & lt देश आईडी = "84" देश नाम = "भारत" & gt; & lt; / देश & gt; & lt; / महाद्वीप & gt; & lt; महाद्वीप क्षेत्र = "अमेरिका" & gt; & lt; देश आईडी = "84" देशनाम = "मेक्सिको" & gt; & lt देश नाम भारत
मैं देश के नाम का उपयोग करके क्षेत्र का नाम प्राप्त करने की कोशिश कर रहा / रही हूं / देश & gt; & lt; / > फिर कोड को एशिया
वापस कर देना चाहिए।
मैंने जो कोशिश की है,
आयात करें lxml.etree एट रूट = एट। फ्रॉमस्ट्रार्ड (xmldata) झंडा = झूठी महाद्वीप = "" देश = "" रूट.इटर ('महाद्वीप') में पड़ोसी के लिए: मैं पड़ोसी। ("देश") में: यदि i.attrib.get ('countryname') == "भारत ": ध्वज = सच महाद्वीप = पड़ोसी.ट्रिब.गेट ('क्षेत्र') देश = I.attrib.get ('countryname') यदि ध्वज == सही: तोड़ प्रिंट 'महाद्वीप है', महाद्वीप, और देश है, देश
यह कोड काम करता है, लेकिन यह ऐसा करने के लिए सुविधाजनक तरीका नहीं है।
मैं इसे xpath
अभिव्यक्ति का उपयोग कैसे कर सकता हूं?
उपयोग // महाद्वीप [देश / देश देश = "भारत"] / @ क्षेत्र
xpath अभिव्यक्ति:
& gt; & gt; & gt; ईटी के रूप में आयात करें lxml.etree & gt; & gt; & gt; Xmldata = "" "... ... lt; स्थानों & gt; ... ... & lt; महाद्वीप क्षेत्र =" अफ्रीका "& gt; ... & lt; देश आईडी =" 84 "देशनाम =" अल्जीरिया "& gt; & lt; / देश & gt ; ... & lt; / महाद्वीप & gt; ... ... & lt; महाद्वीप क्षेत्र = "एशिया" & gt; ... & lt; देश आईडी = "84" देशनाम = "भारत" & gt; & lt; / देश & gt; । & Lt; ... & lt; महाद्वीप क्षेत्र = "अमेरिका" & gt; ... & lt; देश आईडी = "84" देशनाम = "मेक्सिको" & gt; & lt; / देश & gt; ... & lt; / महाद्वीप & gt; ... ... & lt; / स्थानों & gt; ... "" "& gt; & gt; & gt; रूट = ईटी.फ्रेमस्ट्रिंग (xmldata) & gt; & gt; & gt; Print root.xpath ('// महादेश [./ देश / @ देशनाम = "भारत"] / @ क्षेत्र') ['एशिया']
Comments
Post a Comment