парсер xml

 
0
 
Python
ava
scion | 18.02.2010, 01:30
нужно вытащить текст из xml'ки
вида

<card>
<name>name cards</name>
<description>много текста :)
</description>
<card_type>
<name>Story</name>
</card_type>
<id type="integer">26377</id>
<number type="integer">1241</number>
<name>ooo</name>
<identifier>oooo</identifier>
</project>
<version type="integer">7</version>

.....

</card>

нужно вытащить всё в из тега <name> и <description>
как это делать?! с этим domом и element'ом замучился ничего не понимаю... в перле был XML::Simple я мог print Dumper (XML::Simpe->new()->XMLin()); а что делать в питоне не понимаю... уже думаю с помощью простого bash'а пропарсить... :(
Kommentare (5)
ava
MAKCim | 18.02.2010, 09:59 #

def read_str_node(elem):
print("name[{0}]".format(elem.childNodes[0].nodeValue.strip()))

def read_card_type_node(elem):
for child_elem in elem.childNodes:
if child_elem.nodeType != xml.dom.Node.ELEMENT_NODE:
continue
if child_elem.nodeName == "name":
read_str_node(child_elem)
raise Exception("unknown tag name {0}".format(child_elem.nodeName))

def read_config(config_file):
dom = dom = xml.dom.minidom.parse(config_file)
elem = dom.getElementsByTagName("card")[0]
for child_elem in elem.childNodes:
if child_elem.nodeType != xml.dom.Node.ELEMENT_NODE:
continue
if child_elem.nodeName == "name":
read_str_node(child_elem)
elif child_elem.nodeName == "description":
read_str_node(child_elem)
elif child_elem.nodeName == "card_type":
read_card_type_node(child_elem)
...
ava
scion | 22.02.2010, 23:16 #
ничего не понимаю... можно как-нибудь хоть немного прокомментировать.... а то совсем ничего не понятно =(
ava
scion | 23.02.2010, 01:23 #
как мне вывести данные?!
ava
spSerg | 23.02.2010, 22:09 #
http://docs.python.org/library/markup.html
а еще внизу есть раздел "А здесь смотрели?"
ava
scion | 24.02.2010, 02:46 #
ага. спасибо вроде дошло...
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
  MAKCim   spSerg   scion
Ähnliche
advanced
Absenden