У меня возникают проблемы с получением xml.etree.ElementTree
для работы, как я ожидаю.
xmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><suggestedmatches><destination><sortOrder>1</sortOrder><destinationType>destinationType1</destinationType></destination><destination><sortOrder>2</sortOrder><destinationType>destinationType2</destinationType></destination></suggestedmatches>"
root = ET.fromstring(xmlData)
logging.debug("DIAG: %s: root.tag = %s"
% (FUNCTION_NAME, root.tag))
logging.debug("DIAG: %s: root = %r" % (FUNCTION_NAME, ET.dump(root)))
Я пытаюсь понять, почему root
- None.
DEBUG:root:DIAG: findDestinations(): root.tag = suggestedmatches
DEBUG:root:DIAG: findDestinations(): root = None
Этот же код работает в другом скрипте, поэтому я не уверен, почему он не работает здесь.
Вы получаете None
потому что ET.dump
пишет в sys.stdout
и вы регистрируете возврат dump
который является None
.
Из документов:
xml.etree.ElementTree.dump (эль)
Записывает дерево элементов или структуру элемента в файл sys.stdout. Эта функция должна использоваться только для отладки.
Точный формат вывода зависит от реализации. В этой версии он написан как обычный XML файл.
elem - это дерево элементов или отдельный элемент.
Попробуйте использовать метод tostring
вместо dump
.
logging.debug("DIAG: %s: root = %r" % (FUNCTION_NAME, ET.tostring(root)))
ET
здесь? Это встроенный класс? Или это из какого-то стороннего пакета?ElementTree
.