Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 20, 2014 11:47:49

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

lxml. Нужно получить данные из xml-файла в котором есть ОДИНАКОВЫЕ параметры у тэга.

Допустим файл с именем xml1.xml такой:

<root>
    <child1 par="2" bur="3" tap="25" tap="40"/>
</root>

Если попытаться выполнить команду tree = etree.parse(xml1.xml)
То я получу ошибку из-за одинаковых параметров для одного и того же тэга tap: lxml.etree.XMLSyntaxError: Attribute TAP redefined…
А вот так задумано создателями этого xml, что одинаковые параметры допустимы и означают, что какой-то параметр имеет несколько разных значений. Никак повлиять на них я не могу.
Мне бы как-то выгрызть эти данные и я их помещу в свою БД в конкретное поле как-нибудь через запятую перечисленными.

Только начал знакомиться с XML и библиотечкой lxml и тут же встрял.

Отредактировано Pluto (Авг. 20, 2014 11:48:49)

Офлайн

#2 Авг. 20, 2014 14:21:17

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

lxml. Нужно получить данные из xml-файла в котором есть ОДИНАКОВЫЕ параметры у тэга.

Pluto
Мне бы как-то выгрызть эти данные и я их помещу в свою БД в конкретное поле как-нибудь через запятую перечисленными.

1. Ловить исключение и самостоятельно вырезать атрибут.
2. Посмотреть на библиотеки, из которых можно взять класс парсера и унаследовавшись от него
поменять логику метода под себя. Например xml.dom.minidom, функция parse.



Офлайн

#3 Авг. 20, 2014 16:34:41

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

lxml. Нужно получить данные из xml-файла в котором есть ОДИНАКОВЫЕ параметры у тэга.

Отбой.
Все повторяющиеся параметры, оказывается, нужно засовывать в отдельные элементы с одноимённым параметром

<root>
    <child1 par="2" bur="3">
        <tap tap="25"/>
        <tap tap="40"/>
    </child1>
</root>
Вот такой разврат.
Спасибо за внимание.

Офлайн

#4 Авг. 20, 2014 16:58:53

Budulianin
От:
Зарегистрирован: 2011-10-18
Сообщения: 1218
Репутация: +  33  -
Профиль   Отправить e-mail  

lxml. Нужно получить данные из xml-файла в котором есть ОДИНАКОВЫЕ параметры у тэга.

Pluto
Вот такой разврат.
JSON и никакого разврата.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version