xml文件的格式如下:
<data> <country name="Liechtenstein"> <rank updated="yes">2</rank> <year updated="yes">2009</year> <gdppc>141100</gdppc> <neighbor direction="E" name="Austria" /> <neighbor direction="W" name="Switzerland" /> </country> <country name="Singapore"> <rank updated="yes">5</rank> <year updated="yes">2012</year> <gdppc>59900</gdppc> <neighbor direction="N" name="Malaysia" /> </country> <country name="Panama"> <rank updated="yes">69</rank> <year updated="yes">2012</year> <gdppc>13600</gdppc> <neighbor direction="W" name="Costa Rica" /> <neighbor direction="E" name="Colombia" /> </country> </data>
# @File : 4.8.1xml模块.py # @Software: PyCharm import xml.etree.ElementTree as ET tree = ET.parse(\'xmltest.xml\') root = tree.getroot() print(root.tag) #获取标签名 for child in root: # 遍历每一层标签 print(\'----------\', child.tag, child.attrib) for i in child: # 遍历各层标签下的子标签和值 print(i.tag, i.text) print(\'-------------------------------------------\') # 只遍历year节点 for node in root.iter(\'year\'): print(node.tag, node.text)
# @File : 4.8.2xml文件增删改查.py # @Software: PyCharm import xml.etree.ElementTree as ET # 改值操作 tree = ET.parse(\'xmltest.xml\') root = tree.getroot() # f.seek(0) for node in root.iter(\'year\'): new_year = int(node.text) + 1 node.text = str(new_year) node.set(\'updated\', \'yes\') tree.write("xmltest.xml") # 删除值操作 tree = ET.parse(\'xmltest.xml\') root = tree.getroot() # f.seek(0) for country in root.findall(\'country\'): rank = int(country.find(\'rank\').text) if rank > 50: root.remove(country) print(\'----------------------\') for node in root.iter(\'rank\'): print(node.tag, node.text) tree.write(\'output.xml\')
# @File : 4.8.3自动创建xml文件.py # @Software: PyCharm import xml.etree.ElementTree as ET new_xml = ET.Element(\'country_list\') # 生成一个节点名 # 生成第1个xml标签 name = ET.SubElement(new_xml, \'name\', attrib={\'enrolled\': \'yes\'}) age = ET.SubElement(name, \'age\', attrib={\'checked\': \'no\'}) sex = ET.SubElement(name, \'sex\') sex.text = \'33\' # 生成第2个xml标签 name2 = ET.SubElement(new_xml, \'name\', attrib={\'enrolled\': \'yes\'}) age = ET.SubElement(name2, \'age\', attrib={\'checked\': \'no\'}) age = ET.SubElement(name2, \'sex\') age.text = \'19\' et = ET.ElementTree(new_xml) # 生成档案 et.write(\'test.xml\', encoding=\'utf-8\', xml_declaration=True) ET.dump(new_xml) # 打印生成的格式