Форум сайта python.su
0
Приветствую.
Столкнулся вот с такой проблемой: Имеется хмл файл, открываю его на чтение, извлекаю по тегу значение, оно имеет вид: “Баба-Яга”
и вот тут я спотыкаюсь, не могу конвертировать его в utf8 строку.
Тоже самое:
text = u'Баба-Яга'.encode("ascii", "xmlcharrefreplace") print text.decode('ascii','xmlcharrefreplace')
Офлайн
14
Чем ты извлекаешь? Вроде как xml парсер сам должен сущности в юникод переводить.
Офлайн
0
в то и дело что просто открываю файл на редактирование как текстовый без парсера, вот и интересно могу ли конвертнуть не пропуская через парсер
Офлайн
72
SemionА фраза “for encoding only” вам ничего не говорит? А фраза “не влезай, убьет”? ;)
вот и интересно могу ли конвертнуть не пропуская через парсер
Офлайн
14
Можно.
Но если пользуешься парсером - это его работа.
>>> lxml.html.fragment_fromstring('<p>Я</p>') <Element p at 0x126d5a0> >>> root=lxml.html.fragment_fromstring('<p>Я</p>') >>> root.text u'\u042f' >>> print root.text Я
SemionЯ подумал, что ты это парсером делаешь, а ты регекспами?
извлекаю по тегу значение

Офлайн
0
odnochlenДа, регексами.
Я подумал, что ты это парсером делаешь, а ты регекспами?
Офлайн
14
Из встроенных - xml.dom, xml.etree.cElementTree.
Офлайн