Разбор XML разных форматов с использованием Python - PullRequest
0 голосов
/ 13 января 2012

Я пишу класс Python для анализа XML и извлечения имен тегов и их значений.До сих пор я только что передавал XML files своему классу и анализировал его, используя ElementTree.

Неизбежно я хотел бы иметь возможность передавать различные форматы XML в класс, поэтомуне только файлы, но, возможно, строки XML или XML из URL.

Я не уверен, что будет лучшим способом для этого.Я думал о написании отдельного класса или def для преобразования всей информации XML в один формат, например строку.Затем настройте мой класс синтаксического анализа, чтобы он просто принимал строки XML для синтаксического анализа.

Если у кого-нибудь есть предложение о том, как лучше всего решить этот вопрос, это было бы здорово, и как это сделать, было бы еще лучше:).

Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 января 2012

Я не знаю, почему вы пытаетесь разобрать xml, создав собственный класс.Это множество парсеров xml, доступных на python, таких как Beautiful Soup , lxml .Вы можете использовать выражения xpath или css с lxml.

парсинг ответа xml от URL или файла

import lxml
from lxml import etree
et = etree.parse(your xml file or your url)
value = et.xpath("xpath expression")
print value
3 голосов
/ 13 января 2012

Использование LXML . Он может анализировать XML из строк, файлов или URL-адресов прямо из коробки.

from lxml import etree
from cStringIO import StringIO

xml = """<foo><bar/> baz!</foo>"""

# parse from string
etree.fromstring(xml)

# parse from file-like; in this case, StringIO
s = StringIO(xml)
etree.parse(s)

# parse from URL
etree.parse("http://example.com/somefile.xml")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...