[python] xml parove a neparove tagy

Ondrej Beranek rainbof na gmail.com
Čtvrtek Leden 8 13:32:20 CET 2009


No ja to opravim ze to samozrejme patri takto:


import xml.dom.minidom
from xml.dom.minidom import Node

doc = xml.dom.minidom.parse('c:\\devel\\test\\pokus.xml')
for step in doc.getElementsByTagName("info"):
    x = step.getElementsByTagName("description")[0]
    try:
     x.nodeValue('popisek')
    except:
     x.appendChild(doc.createTextNode('popisek'))

print doc.toxml('utf-8')


protoze ta hodnota se udela jen tehdy kdyz se ji nepovede zadat normalne...
ale reseni je to desne jednoduchy. A ucinny.



Dne 8. leden 2009 13:14 slush <slush na slush.cz> napsal(a):

> Nojo, uz peknou chvili tady nad tim laboruju a tak jednoduche reseni me
> nenapadlo :-).
>
> Dne 8. leden 2009 12:39 BoneFlute <boneflute na taco-beru.name> napsal(a):
>
>> slush napsal(a):
>>
>>> Zdravim,
>>>
>>> obavam se, ze to je naprosto korektni chovani. Ve chvili, kdy je tag
>>> neparovy, do nej z principu nelze vlozit dalsi data/strukturu. V pripade, ze
>>> existuje nejaky duvod, proc je tag zapsan jako <description/> a ne
>>> <description></description>, doporucuji pouzit <description text="" />.
>>>
>>
>> Obávám se, že ne tak docela.
>> <description/> a <description></description> si jsou eqvivalentní. Oboje
>> označuje tag, který neobsahuje žádné synovské elementy.
>>
>> Správné řešení je tedy tento element přidat. Například takto:
>>
>> import xml.dom.minidom
>> from xml.dom.minidom import Node
>>
>> doc = xml.dom.minidom.parse('pokus.xml')
>> for step in doc.getElementsByTagName("info"):
>>        x = step.getElementsByTagName("description")[0]
>>        try:
>>                x.appendChild(doc.createTextNode('Popisek'))
>>        except:
>>                print "a co ted ?"
>>
>> print doc.toxml('utf-8')
>>
>>
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20090108/34fed80a/attachment.htm>


Další informace o konferenci Python