2010-08-19 8 views
7

मैं एक गैर-संगत एक्सएमएल फ़ाइल (Sphinx's xmlpipe2 प्रारूप) को पार्स कर रहा हूँ और lxml पार्सर चाहते तथ्य अनसुलझे नामस्थान उपसर्ग देखते हैं कि अनदेखी करने के लिए होगा।क्या LXML में अपरिभाषित नेमस्पेस उपसर्गों को अनदेखा करने के लिए कोई स्विच है?

स्फिंक्स एक्सएमएल का एक उदाहरण:

<sphinx:schema> 
    <sphinx:field name="subject"/> 
    <sphinx:field name="content"/> 
    <sphinx:attr name="published" type="timestamp"/> 
    <sphinx:attr name="author_id" type="int" bits="16" default="1"/> 
</sphinx:schema> 

मैं एक पार्सर कीवर्ड विकल्प गुजर कोशिश करते हैं और टूटी हुई एक्सएमएल ठीक करने के लिए, उदाहरण के लिए के बारे में पता कर रहा हूँ

parser = etree.XMLParser(recover=True) 
tree = etree.parse('sphinxTest.xml', parser) 

लेकिन उपरोक्त उपसर्ग को अनदेखा नहीं करता है, यह इसे हटा देता है।

मैं एक लक्ष्य जो हटाया उपसर्ग उदा में कहते हैं बना सकते हैं

parser = etree.XMLParser(target = AddPrefix()) 

जहां AddPrefix() एक वर्ग है जो हर विशेषता टैग करने के लिए उपसर्ग में जोड़ता है। क्या ऐसा करने का कोई आसान तरीका है? अंततः मैं प्रोग्राम के रूप में सफाई से स्फिंक्स का xmlpipe2 प्रारूप लिखना चाहते हैं।

उत्तर

1

मूल तत्व को xmlns:sphinx="bogus" जोड़ें।

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

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