XML yapılandırmasını ayrıştırmak için xmltodict kullanıyorum.1'den n öğelerine taşıyın
<items>
<item-ref>abc</item-ref>
</items>
ve
<items>
<item-ref>abc</item-ref>
<item-ref>dca</item-ref>
<item-ref>abb</item-ref>
</items>
şöyle ben xmltodict ile bu ayrıştırma ediyorum: XML unsuru hem geçerlidir 1 n durumlarda, oluşabilir yapıları vardır
document['items']['item-ref']
ve tek bir unicode veya bir liste (bulunan öğelere bağlı olarak) geri verir, bu yüzden bir liste veya dize işlemek zorunda kaldığımdan emin olmak için her zaman ek bir kontrol eklemem gerekir:
if isinstance(document['items']['item-ref'], list):
my_var = document['items']['item-ref']
else:
my_var = [document['items']['item-ref']] #create list manually
Bunların üstesinden gelmek için daha iyi/daha basit/daha zarif bir yol var mı?
aynı sorunla karşılaştı ve her şeyi denetler:) – dm03514
Ellerinizi biraz teensy kirli hale getirmek istiyorsanız, xmltodict.py işlevini kopyalayabilirsiniz. Listelere dönüşecek öğeleri belirleyen bir _DictSAXHandler.push_data yöntemi vardır. Argümanları değiştirebilir, böylece ayrıştırıcıyı bir dizi öğeyi * her zaman * listeye dönüştürebilirsiniz. –