2012-07-11 9 views
11

मैं फ़ाइल पर कुछ एक्सएमएल पार्सिंग करने के लिए पाइथन के xml.etree.ElementTree का उपयोग कर रहा हूं। हालांकि, मैं दस्तावेज के माध्यम से इस त्रुटि को बीच में ही मिलती है:पायथन में एक्सएमएल पार्सिंग: एक्सपैटरर अच्छी तरह से गठित नहीं है

xml.parsers.expat.ExpatError: not well-formed (invalid token): line X, column Y 

तो मैं लाइन X, कॉलम Y vim में जाने के लिए और मैं लाल रंग की पृष्ठभूमि पर प्रकाश डाला साथ एंपरसैंड (&) देखें। इसका क्या मतलब है?

इसके अलावा इसके पहले के दो अक्षर >> हैं, तो हो सकता है कि >>& के बारे में कुछ खास हो?

कोई भी इसे ठीक करने के बारे में जानता है?

उत्तर

12

& एक्सएमएल में एक विशेष चरित्र है, जो चरित्र इकाइयों के लिए उपयोग किया जाता है। यदि आपके एक्सएमएल में & स्वयं ही बैठा है, तो & या ѐ या किसी जैसी इकाई के हिस्से के रूप में नहीं, तो एक्सएमएल अमान्य है।

+0

मुझे लगता है कि समस्या हो सकती है मैं एक बहु-रेखा (स्ट्रिंग) तत्व है। अनिवार्य रूप से इस तत्व के लिए मैंने एक grep (regex) किया था हेड -5, 5 लाइनों को वापस पाने के लिए, फिर इसे फ़ाइल में एक एक्सएमएल तत्व के रूप में फंस गया। क्या मैं किसी भी तरह 5 अलग-अलग तत्व बनाने से बेहतर होगा? – JDS

+0

यह कोई फर्क नहीं पड़ता कि इसमें कितने तत्व हैं, यह एक बात है कि इसमें कौन से पात्र हैं। आप सिर्फ एक एक्सएमएल दस्तावेज़ में और चरित्र को अपने आप में नहीं डाल सकते हैं। इसे '&' के साथ बदलकर इसे बचाना होगा। – BrenBarn

+0

कुछ पाठ और वह वर्ण कोई अच्छा नहीं है आप कह रहे हैं? मैं भी कई अलग-अलग फाइलों से इन पंक्तियों में पढ़ रहा हूं, इसलिए मुझे यकीन नहीं है कि मैं उन्हें कैसे बच सकता हूं (grep का उपयोग करके एक बैश स्क्रिप्ट से पढ़ा जाता है और फिर फ़ाइल में आउटपुट किया जाता है) – JDS

0

मैं yattag का उपयोग करके इसे हल बजाय

from yattag import indent 
print indent(xml_string.encode('utf-8')) 
संबंधित मुद्दे

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