मेरे पास एक विशाल एक्सएमएल फ़ाइल (1 गीग) है। मैं कुछ तत्वों (प्रविष्टियों) को एक ही शीर्षलेख और विनिर्देशों के साथ किसी अन्य फ़ाइल में स्थानांतरित करना चाहता हूं।lxml.etree.tostring (तत्व) को पायथन में नामस्थान लिखने के लिए कैसे बताना है?
चलो कहते हैं कि मूल फ़ाइल टैग <to_move>
के साथ इस प्रविष्टि शामिल करते हैं:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE some SYSTEM "some.dtd">
<some>
...
<to_move date="somedate">
<child>some text</child>
...
...
</to_move>
...
</some>
मैं lxml.etree.iterparse का उपयोग फ़ाइल के माध्यम से पुनरावृति करने के लिए। ठीक काम करता है। जब मैं टैग <to_move>
साथ तत्व मिल जाए, मान लेते हैं यह चर element
में संग्रहीत किया जाता रहा
new_file.write(etree.tostring(element))
करते हैं लेकिन इस
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE some SYSTEM "some.dtd">
<some>
...
<to_move xmlns:="some" date="somedate"> # <---- Here is the problem. I don't want the namespace.
<child>some text</child>
...
...
</to_move>
...
</some>
तो परिणाम में सवाल यह है: etree.tostring बताने के लिए कैसे () xmlns:="some"
लिखना नहीं है। क्या यह संभव है? मैं lxml.etree के api- प्रलेखन के साथ struggeled, लेकिन मुझे एक संतोषजनक जवाब नहीं मिल सका।
यह मैं etree.trostring
के लिए क्या मिला है:
tostring(element_or_tree, encoding=None, method="xml",
xml_declaration=None, pretty_print=False, with_tail=True,
standalone=None, doctype=None, exclusive=False, with_comments=True)
अपने एक्सएमएल पेड़ की एक इनकोडिंग स्ट्रिंग प्रतिनिधित्व करने के लिए एक तत्व को क्रमानुसार।
मेरे लिए tostring()
के पैरामीटर में से प्रत्येक में मदद करने के लिए प्रतीत नहीं होता है। कोई सुझाव या सुधार?
मैं नामस्थानों के पीछे * महान विचार * समझता हूं। :-) लेकिन मेरे इस विशेष मामले में इसमें कोई लाभ नहीं है। इसका मतलब यह नहीं है कि मैं हमेशा उन्हें अनदेखा कर दूंगा। :-) धन्यवाद! – Aufwind