2012-11-14 17 views
9

मैं अजगर में ElementTree सीख रहा हूँ। सब कुछ छोड़कर ठीक लग रहा है जब मैं उपसर्ग के साथ एक्सएमएल फ़ाइल को पार्स करने का प्रयास करें:पायथन ElementTree पार्सिंग अनबाउंड उपसर्ग त्रुटि

import xml.etree.ElementTree as ET 
tree = ET.parse('test.xml') 

मैं निम्नलिखित त्रुटि मिली:: जब मैं xml पार्स करने के लिए कोशिश

<?xml version="1.0"?> 
<abc:data> 
    <abc:country name="Liechtenstein" rank="1" year="2008"> 
    </abc:country> 
    <abc:country name="Singapore" rank="4" year="2011"> 
    </abc:country> 
    <abc:country name="Panama" rank="5" year="2011"> 
    </abc:country> 
</abc:data> 

:

test.xml

xml.etree.ElementTree.ParseError: unbound prefix: line 2, column 0 

मैं आदेश उपसर्ग के साथ एक एक्सएमएल फ़ाइल को पार्स करने में कुछ निर्दिष्ट करने की आवश्यकता है ?

+3

संक्षेप में आप एबीसी के लिए एक लापता नाम स्थान है। एक नज़र डालें: http://stackoverflow.com/a/4999510/1107807 –

उत्तर

11

अपनी एक्सएमएल फ़ाइल में एबीसी नेमस्पेस जोड़ें।

<?xml version="1.0"?> 
<abc:data xmlns:abc="your namespace"> 
+14

लेकिन जब मेरे एक्सएमएल को बदलने के लिए यह नहीं है, तो मुझे बस इसे पार्स करने की आवश्यकता है? –

+1

मैं @ मार्क एलन से प्रश्न/टिप्पणी दोहराता हूं! मुझे भी यही समस्या हो रही है। निश्चित रूप से केस-दर-मामले आधार पर कोई फ़ाइल संपादित कर सकता है, लेकिन मेरे पास कई बड़ी (और nonuniform) xml फ़ाइलें हैं। निश्चित रूप से इस के आसपास जाने का एक तरीका है – dnh37

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