मैं पायथन 2.5 और विनएक्सपी का उपयोग कर रहा हूं। मैं नीचे के रूप में एक्सएमएल फाइल पार्स कर रहा हूँ:

<Test>
<Default_Config>
  <LINK>{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6}</LINK> 
  <Lanestat>{1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12}</Lanestat> 
  </Default_Config>
  </Test>

हालांकि जब मैं प्रिंट आउट करता हूं, तो आउटपुट नीचे जैसा होता है:

(None, '{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6}')
(None, '{1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12}')

प्रश्न: मेरे कोड को कैसे संशोधित करें ताकि लिंक और लैनेस्टेट किसी के बजाय दिखाई न दें। टीक्यू कोड:

import elementtree.ElementTree as ET

tree = ET.parse("dict1.xml")
doc = tree.getroot()


for elem in doc.findall('Default_Config/LINK'):
    #print elem.get('LINK'), elem.text
    a=elem.get('LINK'), elem.text
    print a

for elem in doc.findall('Default_Config/Lanestat'):

    #print elem.get('LINK'), elem.text
    a=elem.get('LINK'), elem.text
    print a
0
maximus 12 अप्रैल 2011, 17:31

2 जवाब

सबसे बढ़िया उत्तर
import xml.etree.ElementTree as ET

tree = ET.parse("dict1.xml")
doc = tree.getroot()

for elem in doc.findall('Default_Config/LINK'):
    a = elem.tag, elem.text
    print a

for elem in doc.findall('Default_Config/Lanestat'):
    a = elem.tag, elem.text
    print a

=>

('LINK', '{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6}')
('Lanestat', '{1: 2, 2: 4, 3: 6, 4: 8, 5: 10, 6: 12}')
1
mzjn 12 अप्रैल 2011, 17:47
अब मैं 2 प्राप्त करने के लिए लेनस्टैट 1 से जानकारी निकालना चाहता हूं। हालांकि, यह एक टपल है। मैं इसे नीचे दिए गए कोड का उपयोग करके करने का प्रबंधन करता हूं: doc.findall ('Default_Config/Lanestat') में elem के लिए: a=elem.tag, elem.text एक प्रिंट प्रकार (ए) बी = ए [1] प्रिंट प्रकार (बी) प्रिंट करें सी = eval (बी) प्रिंट प्रकार (सी) प्रिंट सी [1]। क्या ऐसा करने का कोई शानदार तरीका है? टीक्यू
 – 
maximus
12 अप्रैल 2011, 18:08
@ मैक्सिमस: एक नया प्रश्न पूछें, और मुझे यकीन है कि कोई बचाव में आएगा!
 – 
mzjn
12 अप्रैल 2011, 19:20

A=elem.get('LINK') के बजाय a=elem.tag का उपयोग करने का प्रयास करें

import elementtree.ElementTree as ET

tree = ET.parse("dict1.xml")
doc = tree.getroot()

for elem in doc.findall('Default_Config/LINK'):
    a=elem.tag, elem.text
    print a

for elem in doc.findall('Default_Config/Lanestat'):
    a=elem.tag, elem.text
    print a
0
so12311 12 अप्रैल 2011, 17:45