Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> парсер xml 
:(
    Опции темы
scion
Дата 18.2.2010, 01:30 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



нужно вытащить текст из 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'а пропарсить... :(

Это сообщение отредактировал(а) Daevaorn - 22.2.2010, 23:47
PM MAIL   Вверх
MAKCim
Дата 18.2.2010, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 1
Всего: 207



Код

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)
...



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
scion
  Дата 22.2.2010, 23:16 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



ничего не понимаю... можно как-нибудь хоть немного прокомментировать.... а то совсем ничего не понятно =(
PM MAIL   Вверх
scion
Дата 23.2.2010, 01:23 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



как мне вывести данные?!

Это сообщение отредактировал(а) scion - 23.2.2010, 01:40
PM MAIL   Вверх
spSerg
Дата 23.2.2010, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 22.3.2007

Репутация: 4
Всего: 4



http://docs.python.org/library/markup.html
а еще внизу есть раздел "А здесь смотрели?"

Это сообщение отредактировал(а) spSerg - 23.2.2010, 22:13
PM   Вверх
scion
Дата 24.2.2010, 02:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 13.5.2009

Репутация: нет
Всего: нет



ага. спасибо вроде дошло...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.