anda Python 2.4.3 kullanan ve bir ya da daha fazla etiketleri belirli bir özelliğinin değerlerini değiştirmek istediğinizPython/elementtree kullanarak XML ayrıştırılırken yorumları saklamak için nasıl
yükseltmek için izin verilmez, birlikte XML dosyasında güncellenen dosyada.
Ben argüman olarak bir XML dosyası alır vedef 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
Bu, nitelikleri "Tüm gayet aşağıda gösterildiği gibi belirtilen her etiket için, bir öznitelik değiştiren bir Python komut dosyası oluşturmak başarmış
initialState "Orijinal XML'imin çok fazla XML yorumu içerdiği gerçeği hariç, güncellendi, ancak çoktan gittiler, bu da kötü.
Bu ayrıştırmanın yalnızca XML yapısını aldığından şüpheleniyorum, ancak XML-yorumlarının yapının bir parçası olduğunu düşündüm. Ayrıca, orijinal belgemin "insan tarafından okunabilir" biçimlendirmesinin çok uzun sürdüğünü fark ettim, ancak fark ettim ki beklenen davranış, xmllint --format
veya XSL kullanarak biçimlendirmek gerekiyor.
2.4? Benim sempatiklerim. – delnan
bahse girerim, ilk betiklerimi oluşturmaya başladığımda zor zamanlar geldiğini fark ettim. İyi bir şey, örnekler bulduğum 2.7 :-) için – rhellem