Python读取XML节点


本文将从多个方面对Python读取XML节点进行详细阐述。

一、读取XML文件

首先,我们需要导入`xml.etree.ElementTree`模块来进行XML文件的读取。

import xml.etree.ElementTree as ET

tree = ET.parse('example.xml')
root = tree.getroot()

上述代码通过`ET.parse()`方法读取XML文件,并通过`getroot()`方法获取根节点。

接下来,我们可以通过遍历根节点的子节点来获取XML中的具体数据。

for child in root:
    print(child.tag, child.attrib)

上述代码将打印出根节点的所有子节点的标签和属性。

除此之外,我们也可以使用XPath来针对特定的节点进行定位。

for elem in tree.iterfind('country'):
    name = elem.find('name').text
    population = elem.find('population').text
    print(name, population)

上述代码通过XPath表达式`'country'`找到所有的``节点,并通过`find()`方法获取对应节点的子节点值。

二、解析XML节点

在读取XML节点后,我们可以进一步解析节点的子节点内容。

for elem in root.iter('country'):
    for subelem in elem:
        print(subelem.tag, subelem.text)

上述代码将打印出所有``节点的子节点的标签和文本内容。

此外,我们也可以使用XPath语法来解析节点。

for elem in tree.iterfind('.//country[@name="Liechtenstein"]'):
    name = elem.find('name').text
    population = elem.find('population').text
    print(name, population)

上述代码使用XPath表达式`.//country[@name="Liechtenstein"]`定位到名为"Liechtenstein"的``节点,并获取其子节点的值。

三、修改XML节点

除了读取和解析XML节点之外,我们也可以修改节点的内容。

for elem in tree.iterfind('country'):
    population = elem.find('population')
    population.text = str(int(population.text) + 1000)
    population.set('updated', 'yes')

tree.write('output.xml')

上述代码将修改每个``节点的``子节点的值,并给该节点添加一个名为"updated"的属性。

四、创建XML节点

除了读取和修改现有的XML节点之外,我们还可以创建新的节点并添加到XML中。

new_country = ET.SubElement(root, 'country')
new_country.attrib['name'] = 'Canada'

name = ET.SubElement(new_country, 'name')
name.text = 'Canada'
population = ET.SubElement(new_country, 'population')
population.text = '37590000'

tree.write('output.xml')

上述代码创建了一个名为"Canada"的新节点,并设置其子节点的值,最后将其写入到新的XML文件中。

五、总结

本文介绍了Python读取XML节点的基本方法,包括读取XML文件、解析XML节点、修改XML节点和创建XML节点等。通过这些方法,我们可以轻松地处理XML数据并进行必要的操作。

评论关闭