वर्तमान का उपयोग कर पायथन 2.4.3, औरकैसे जबकि अजगर/ElementTree का उपयोग कर XML पार्सिंग टिप्पणियों रखने के लिए
उन्नत करने के लिए मैं एक या अधिक टैग में दिए गए विशेषता के मूल्यों को बदलना चाहते हैं अनुमति नहीं एक साथ, अद्यतन फ़ाइल में एक्सएमएल-टिप्पणियों के साथ।
मैं Python स्क्रिप्ट है जो तर्क के रूप में एक एक्सएमएल फ़ाइल लेता है, और निर्दिष्ट प्रत्येक टैग के लिए एक विशेषता बदल जाता है, के रूप में नीचे
def update(file, state):
global Etree
try:
from elementtree import ElementTree
print '*** using ElementTree'
except ImportError, e:
print '***'
print '*** Error: Must install either ElementTree or lxml.'
print '***'
raise ImportError, 'must install either ElementTree or lxml'
#end try
doc = Etree.parse(file)
root = doc.getroot()
for element in root.findall('.//StateManageable'):
element.attrib['initialState'] = state
#end for
doc.write(file)
#end def
यह सब ठीक, गुण "है दिखाया बनाने में कामयाब रहे initialState "अपडेट किया गया है, इस तथ्य को छोड़कर कि मेरे मूल एक्सएमएल में बहुत सी एक्सएमएल टिप्पणियां भी हैं, लेकिन वे लंबे समय से चले गए हैं, जो खराब है।
संदेह है कि पार्स केवल एक्सएमएल-संरचना को पुनर्प्राप्त करता है, लेकिन मैंने एक्सएमएल-टिप्पणियों को सोचा था जहां संरचना का एक हिस्सा था। मुझे यह भी एहसास है कि मेरे मूल दस्तावेज़ का "मानव-पठनीय" स्वरूपण लंबे समय से चला गया है, लेकिन मुझे एहसास हुआ है कि व्यवहार की उम्मीद है, बाद में xmllint --format
या एक्सएसएल का उपयोग करके प्रारूपित करने की आवश्यकता है।
2.4? मेरी सहानुभूति। – delnan
आप शर्त लगाते हैं, मेरी पहली स्क्रिप्ट बनाने के लिए मुझे एक कठिन समय था जब मुझे लगता है कि _all_ अच्छी सामग्री जो मैंने पाया है 2.7 :-) – rhellem