[python] xml parove a neparove tagy

BoneFlute boneflute na taco-beru.name
Čtvrtek Leden 8 16:48:07 CET 2009


Ondrej Beranek napsal(a):
> ano zkousel. Node Value lze pouzit pokud je to <tag></tag> pokud se to 
> nepovede tak se musi vytvorit.

Opravdu?
Pokud ano, tak by to bylo dosti podivné chování. Ale jak si tu tady s 
tím hraji, tak se chová podle očekávání. Tedy vždycky vyhodí výjimku:

TypeError: 'NoneType' object is not callable

Aby bylo rozuměno, on mezi <tag></tag> a <tag/> opravdu není žádný rozdíl.

Jestli chování té třídy chápu dobře, tak nodeValue vrací hodnotu 
textového uzlu. Vzhledem k tomu, že <tag></tag> ani <tag>Lorem 
ipsum.</tag> ani <tag/> textový uzel není, tak musí vrátit None.

Pokud z <tag>Lorem ipsum.</tag> chceš získat ten text tak nejdřív musíš 
získat textový uzel třeba tímto způsobem:

print doc.getElementsByTagName("description")[0].childNodes[0].nodeValue

V případě <tag></tag> i <tag/> by to mělo vyhodit výjimku, protože žádný 
uzel, natož textový neobsahuje.


Obávám se, že jsi se napálil tím ošetřením výjimky.



--
BF


Další informace o konferenci Python