python读取xml文件代码事例
时间: 2023-07-18 22:34:11 浏览: 98
以下是一个使用Python读取XML文件的示例代码,假设我们有一个名为example.xml的XML文件:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>
</catalog>
```
现在,我们可以使用Python的xml.etree.ElementTree库来读取这个XML文件。以下是一个示例代码:
```python
import xml.etree.ElementTree as ET
# 解析XML文件并获取根元素
tree = ET.parse('example.xml')
root = tree.getroot()
# 遍历XML文件中的元素并访问它们的属性和文本
for child in root:
print('Book ID:', child.attrib['id'])
print('Author:', child.find('author').text)
print('Title:', child.find('title').text)
print('Genre:', child.find('genre').text)
print('Price:', child.find('price').text)
print('Publish Date:', child.find('publish_date').text)
print('Description:', child.find('description').text)
print()
# 使用XPath表达式来选择XML文档中的元素
for elem in root.findall('.//book[genre="Fantasy"]'):
print('Fantasy Book ID:', elem.attrib['id'])
print('Author:', elem.find('author').text)
print('Title:', elem.find('title').text)
print()
```
在上面的示例代码中,我们首先使用ET.parse()函数解析XML文件,并使用getroot()方法获取根元素。然后,我们使用for循环遍历XML文件中的每个book元素,并使用find()方法访问其子元素的文本内容。最后,我们使用XPath表达式".//book[genre="Fantasy"]"来选择所有genre为"Fantasy"的book元素,并输出它们的属性和文本内容。
阅读全文