欢迎访问宙启技术站
智能推送

使用xml.dom.minidom.Node获取XML节点的属性和值

发布时间:2023-12-18 04:44:51

xml.dom.minidom是Python中的一个内置模块,用于解析XML文档。其中的Node类是一个表示XML节点的基本类,可以通过它来获取节点的属性和值。

下面是一个使用xml.dom.minidom.Node获取XML节点属性和值的例子:

首先,我们需要准备一个XML文档。假设我们有以下XML文档data.xml:

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="1">
        <title>Python Crash Course</title>
        <author>Eric Matthes</author>
    </book>
    <book id="2">
        <title>The Pragmatic Programmer</title>
        <author>Andrew Hunt and David Thomas</author>
    </book>
</books>

我们可以使用如下代码来获取XML文档的节点属性和值:

import xml.dom.minidom

# 打开XML文档
dom = xml.dom.minidom.parse('data.xml')

# 获取根节点
root = dom.documentElement

# 获取所有book节点
books = root.getElementsByTagName('book')

# 遍历所有book节点
for book in books:
    # 获取id属性
    id = book.getAttribute('id')
    print('Id:', id)

    # 获取title和author节点
    title = book.getElementsByTagName('title')[0]
    author = book.getElementsByTagName('author')[0]

    # 获取title的值
    print('Title:', title.firstChild.data)

    # 获取author的值
    print('Author:', author.firstChild.data)

在上面的例子中,我们首先使用xml.dom.minidom.parse函数打开XML文档,并将其解析为一个DOM对象。然后,我们通过调用documentElement属性获取根节点,并通过调用getElementsByTagName方法获取所有的book节点。

接着,我们通过遍历所有的book节点,使用getAttribute方法获取id属性的值,并使用getElementsByTagName方法分别获取title和author节点。我们通过调用firstChild.data属性获取节点的文本内容。

最后,我们打印出从XML文档中获取到的节点属性和值。

运行上述代码,输出结果如下:

Id: 1
Title: Python Crash Course
Author: Eric Matthes
Id: 2
Title: The Pragmatic Programmer
Author: Andrew Hunt and David Thomas

从以上例子中,我们可以看到通过使用xml.dom.minidom.Node类,我们可以轻松地获取XML节点的属性和值。