python-操作xml格式的文件
阿新 • • 發佈:2018-03-30
remove true checked .get 模塊 class parse 增刪 roo
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) # 打印生成的格式
python-操作xml格式的文件