Bir xml dosyasında belirli bir etiket olup olmadığını kontrol etmem gerekiyor. ŞuPython Lxml (objectify): Bir etiketin var olup olmadığını kontrol etme
<main>
<elem1/>
<elem2>Hi</elem2>
<elem3/>
...
</main>
böyle, ben, hata kontrolü ile çirkin bir hack kullanıyorum:
Örneğin, ben etiketi, bu snippet'indeki varsa görmek istiyorum da
try:
if root.elem1.tag:
foo = elem1
except AttributeError:
foo = "error finding elem1"
Ben Düğüm bulamıyorsa dizeyi özelleştirmek (yani "-tagname-bulunamıyor").
Uzun bir değişkenler listesi kontrol etmeliyim ve kodu 100 kez tekrarlamak istemiyorum.
herhangi bir öneriniz? böylece, içeriğini almak için eğer,
<main>
<asset name="Virtual Dvaered Unpresence">
<virtual/>
<presence>
<faction>Dvaered</faction>
<value>-1000.000000</value>
<range>0</range>
</presence>
</asset>
<asset name="Virtual Empire Small">
<virtual/>
<presence>
<faction>Empire</faction>
<value>100.000000</value>
<range>2</range>
</presence>
</asset>
</main>
Ben etiketi var olup olmadığını kontrol etmek istiyorum ve:
Düzenleme: İşte
fiili xml dosyasının bir kelepir olduğunu.
Düzeltme: Tamam, iki yanıtı birleştireceğim, ancak yalnızca bir tanesine oy verebiliyorum. Afedersiniz.
Düzenleme 3: Burada XPath hakkında İlgili soru: Python lxml (objectify): Xpath troubles
Düğüm varsa, ne olur? Bir hata ya da sadece boş bir değer veriyor? – Biosci3c
@ Biosci3c belirli bir örnek bir hata verir '[0]' 'xpath' çağrısı tarafından döndürülen ilk değeri denemeyi denemek.İstemeden çıkarılmadan önce listenin boş olup olmadığını kontrol ettiyseniz, bir hata olmadan bir testiniz olacaktır. btw, bu verilenler arasında en iyi uygulama yanıtı olarak görüyorum –
Tamam, ben XPATH önerisini beğendim, bu yüzden bunu da kullanacağım BTW, bence sonunda bir kapanış parantezini kaçırıyorsun. satır – Biosci3c