Форум сайта python.su
задача элементарная получить в stdin кусок xml и найти значение тега ну или тегов
from xml.etree import ElementTree as ET
data = sys.stdin.read()
element = ET.XML(str(data))
tag="name1"
for subelement in element:
val = subelement.findtext(tag)
if not val == None:
print val
<xml>
<sub>
<name1>value1</name1>
<name2>value2</name2>
</sub>
</xml>
<xml>
<name1>value1</name1>
<name2>value2</name2>
</xml>
Отредактировано (Июнь 6, 2011 15:56:27)
Офлайн
У вас документ не валидный - name2 не закрыт.
вот пример по чтению xml
Офлайн
name2 закрыт это я опечатался , проблема именно в иерархии, вообщем я забил на element tree и сделал через minidom все работает
Отредактировано (Июнь 6, 2011 15:58:26)
Офлайн
nightfogнет проблем с иерархией (проблема в Вашем коде), в общем зря на element tree забили, minidom'у до него как пешком до Шанхая :)
проблема именно в иерархии, вообщем я забил на element tree
from xml.etree import ElementTree as ET
xml1 = """\
<xml>
<sub>
<name1>value1</name1>
<name2>value2</name2>
</sub>
</xml>
"""
xml2 = """\
<xml>
<name1>value1</name1>
<name2>value2</name2>
</xml>
"""
dom = ET.XML(xml1)
for node in dom.iterfind(".//name1"):
print(node.tag, node.text)
dom = ET.XML(xml2)
for node in dom.iterfind(".//name1"):
print(node.tag, node.text)
Офлайн