Python xml.etree.ElementTree Проблемы

1

У меня возникают проблемы с получением 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

Этот же код работает в другом скрипте, поэтому я не уверен, почему он не работает здесь.

  • 0
    Что такое ET здесь? Это встроенный класс? Или это из какого-то стороннего пакета?
  • 0
    Понял! Это псевдоним импорта для ElementTree .
Теги:

1 ответ

0

Вы получаете 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)))
  • 0
    Спасибо, это объясняет странность, которую я видел в выводе. Пожалуйста, смотрите мои обновления на мой вопрос выше, проблема в том, что я не могу извлечь данные ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню