Я пытаюсь извлечь некоторую информацию из входного XML-файла и распечатать его в выходной файл с помощью команд lxml и xpath. Я получаю проблемы при чтении XML-тег, как следующийкак сохранить & при анализе xml-файла с использованием lxml и xpath
...
<editor> Barnes & Nobel </editor>
...
Для того, чтобы разобрать файл XML и распечатать содержимое редактора я использую (всегда есть только один редактор в XML):
parser = etree.XMLParser(encoding='utf-8')
docTree = etree.parse(io.BytesIO(open(inputXML, "r").read()), parser)
print docTree.xpath('//editor')[0].text
Моя проблема заключается в том, что &
в какой-то момент преобразуется в '&'
, что испортит мою дальнейшую обработку.
Как я могу гарантировать, что символ &
не будет «декодирован»?
Параметр '&' является частью формата * * XML, а не часть данных. Это похоже на просьбу сохранить данные в кодировке UTF-8. Если вы хотите вернуться, просто выйдите из данных самостоятельно. –
Что дальше обрабатывается? Если вы создаете вывод HTML, используйте подходящую библиотеку шаблонов HTML, которая, например, обрабатывает выходное экранирование. –
@MartijnPieters, тогда я предполагаю, что вы предлагаете что-то вроде docTree = etree.parse (io.BytesIO (open (inputXML, «r»). Read(). Replace («&», «\ &»)), парсер)? – XAnguera