将xml格式文件转换成txt文件,可以使用python标准库xml.etree.ElementTree中的方法来实现。
以下是具体的步骤:
1. 读取xml文件
需要先使用open()函数打开xml文件,然后使用xml.etree.ElementTree中的parse()函数将xml文件解析为一个ElementTree对象。示例如下:
import xml.etree.ElementTree as ET
tree = ET.parse('example.xml')
2. 遍历xml文件并提取相关信息
将xml文件读取到ElementTree对象中之后,需要使用getroot()方法获取XML文件的根元素(Element)。然后通过Element对象的属性、子元素等可以方便地提取出相关信息。
以下是一个简单的示例:假设我们的xml文件如下所示:
<root>
<person name="Alice" age="20">
<phone type="mobile">123456789</phone>
<phone type="home">987654321</phone>
</person>
<person name="Bob" age="30">
<phone type="home">555666777</phone>
</person>
</root>
我们可以通过以下方式提取"name"属性和"phone"元素的信息:
root = tree.getroot()
for person in root.findall('person'):
name = person.get('name')
for phone in person.findall('phone'):
phone_type = phone.get('type')
phone_number = phone.text
print(name, phone_type, phone_number)
输出结果为:
Alice mobile 123456789
Alice home 987654321
Bob home 555666777
3. 将提取的信息保存到txt文件
在得到了xml文件中的信息后,可以将其保存到txt文件中。这里我们使用python内置的open()函数创建一个文件对象,然后使用文件对象的write()方法将信息写入到txt文件中。示例如下:
with open('result.txt', 'w') as f:
for person in root.findall('person'):
name = person.get('name')
for phone in person.findall('phone'):
phone_type = phone.get('type')
phone_number = phone.text
f.write(name + ' ' + phone_type + ' ' + phone_number + '\n')
这样就可以将xml文件中提取的信息保存到result.txt文件中了。
综上所述,以上就是使用xml.etree.ElementTree实现将xml格式文件转换成txt文件的完整攻略。以下是另一个示例:
假设我们的xml文件如下所示:
<root>
<book>
<title>Python 101</title>
<author>John Smith</author>
<price>29.99</price>
</book>
<book>
<title>Python 201</title>
<author>Sarah Jones</author>
<price>39.99</price>
</book>
</root>
我们可以通过以下方式提取所有书籍的信息并保存到txt文件中:
with open('books.txt', 'w') as f:
for book in root.findall('book'):
title = book.find('title').text
author = book.find('author').text
price = book.find('price').text
f.write(title + '\n')
f.write('by ' + author + '\n')
f.write('$' + price + '\n\n')
这样就可以得到一个books.txt文件,内容如下所示:
Python 101
by John Smith
$29.99
Python 201
by Sarah Jones
$39.99
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决python将xml格式文件转换成txt文件的问题(xml.etree方法) - Python技术站