У меня есть фрагмент XML, который мне нужно проанализировать.Вот два способа, которые я попытался проанализировать с помощью lxml
:
s='''<Persons>
<Person>
<FirstName>Mark</FirstName>
<LastName>Tom</LastName>
</Person>
<Person>
<FirstName>Mark</FirstName>'''
>>> etree.fromstring(s)
lxml.etree.XMLSyntaxError: Premature end of data in tag Person line 6, line 7, column 30
>>> html.fromstring(s)
<Element persons at 0x11fc49908>
Однако мне нужно сохранить чувствительность к регистру тегов - я не могу поместить их все в нижний регистр как html
делает: однако, использование etree
не удается, поэтому я вынужден использовать парсер html
.
Как мне сохранить правильную заглавную букву в вышеуказанном вопросе?Тэг должен быть Persons
, а не persons
.
Я бы хотел остаться в пределах lxml
, но пока единственное решение, которое я нашел, это использование BeautifulSoup
:
>>> from bs4 import BeautifulSoup as bs4
>>> bs4(s, 'xml')
<Persons>
...