2015-11-01 3 views
-1

Ive читал в Интернете и наткнулся на это решение Creating a simple XML file using python, но не был уверен, было ли это все еще актуальным решением, поскольку пост 5 лет. Python Я предполагаю, что за последние 5 лет многое изменилось.Создайте/проанализируйте xml-файл с помощью python

У меня есть класс, который имеет несколько атрибутов. В этом случае имя атрибута - это строка, а затем другой атрибут, называемый элементами, который представляет собой список строк. Я хочу записать эти данные в xml, а затем позже проанализировать его, чтобы повторно заполнить переменную Команды при запуске инструмента. Я хочу, чтобы xml, который он генерирует, имел красивые интервалы и отступы.

Могу ли я создать желаемый xml со стандартной библиотекой в ​​python, а также проанализировать xml-файл? Или мне нужно использовать отдельную загрузку, так что вы рекомендуете?

Teams =[] 
Teams.append(Team(name="Zebras" items=[])) 
Teams.append(Team(name="Cobras" items=[])) 
Teams.append(Team(name="Tigers" items=[])) 
Teams.append(Team(name="Lizards" items=[])) 

выход Xml пример

<?xml version="1.0" ?> 
<teams> 
    <team name="cobras"> 
    <item name="teapot001"/> 
    <item name="teapot002"/> 
    <item name="teapot003"/> 
    </team> 
    <team name="lizards"> 
    <item name="teapot001"/> 
    <item name="teapot002"/> 
    <item name="teapot003"/> 
    </team> 
</teams> 
+0

Us e ['xml.etree.ElementTree'] (https://docs.python.org/2/library/xml.etree.elementtree.html) или просмотреть [Python wiki] (https: //wiki.python. org/moin/PythonXml) для получения дополнительных опций. – augurar

+0

Создание и синтаксический анализ xml - это разные проблемы и лучше всего обрабатывать различными инструментами. Вы можете создавать документы с ElementTree, lxml и т. Д. Или вы можете использовать инструмент шаблона xml, например jinga2. Для простых XML-документов обычно просто писать теги вручную. – tdelaney

+0

* не был уверен, был ли это все еще актуальным решением, так как пост 5 лет *. Принятый ответ на связанный вопрос все еще в порядке. Ничто существенное не изменилось в API. – mzjn

ответ

1

Использование ElementTree или minidom из библиотеки XML, вы можете себе это ответ на это сообщение:

How do I parse XML in Python?

пример:

import xml.dom.minidom 

xml = xml.dom.minidom.parse(xml_fname) 
# or xml.dom.minidom.parseString(xml_string) 
pretty_xml_as_string = xml.toprettyxml() 
+0

Ответ на сообщение не касается форматирования, которое не содержит пробелов или отступов – JokerMartini

+0

@JokerMartini Я считаю, что вы можете использовать метод toprettyxml: http://stackoverflow.com/questions/749796/pretty-printing-xml-in -python –

Смежные вопросы