Моя попытка
from lxml import objectify,etree
xml = """<?xml version='1.0' encoding='windows-1252'?>
<Connection>
<FileList>
</FileList>
</Connection>"""
root = etree.fromstring(xml.encode('utf-8'))
e = root.find('.//FileList')
path = r'/home/xyz/xml/text'
extn = r'.xml'
for i in range(1,3):
file = etree.SubElement(e,'File')
file.text = ''.join([path,str(i),extn])
print(etree.tostring(root,pretty_print=True))
Но мой код генерирует что-то вроде
b'<Connection>\n <FileList> \n <File>/home/xyz/xml/text1.xml</File><File>/home/xyz/xml/text2.xml</File></FileList>\n</
Connection>\n'
Я хочу что-то вроде этого
<Connection>
<FileList>
<File>/home/xyz/xml/text1.xml</File>
<File>/home/xyz/xml/text2.xml</File>
</FileList>
</Connection>
1
jhon.smith
1 Апр 2014 в 13:12
1
Они равны в том, что касается структуры XML. Вы хотите красиво распечатать XML?
– user1907906
1 Апр 2014 в 13:14
Я пробовал изрядно распечатать его, но все же красивый вид печати все портит, не так ли?
– jhon.smith
1 Апр 2014 в 13:22
Что решить? XML уже является тем, что вам нужно, включая разрывы строк и все такое.
– user1907906
1 Апр 2014 в 13:23
Дочерние элементы XML кажутся напечатанными в одной строке /home/xyz/xml/text1.xml /home/xyz/xml/text2.xml
– jhon.smith
1 Апр 2014 в 13:26
1 ответ
Лучший ответ
У вас уже есть то, что вы хотите.
s = b'<Connection>\n <FileList> \n <File>/home/xyz/xml/text1.xml</File><File>/home/xyz/xml/text2.xml</File></FileList>\n</Connection>\n'
with open("o.xml", "w") as o:
print(s.decode("UTF-8"), file=o)
Теперь посмотрим на результат.
$ cat o.xml
<Connection>
<FileList>
<File>/home/xyz/xml/text1.xml</File><File>/home/xyz/xml/text2.xml</File></FileList>
</Connection>
0
user1907906user1907906
1 Апр 2014 в 13:27
Извините, вы правы, я открыл документ в firefox и дал мне желаемый результат
– jhon.smith
1 Апр 2014 в 13:31
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.