【python】模块——xml模块

示例html

<data>
    <country name="Liechtenstein">
        <rank updated="yes">2</rank>
        <year updated="yes">2010</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">2013</year>
        <gdppc>59900</gdppc>
        <neighbor direction="N" name="Malaysia" />
    </country>
</data>
html.html

一、常用方法

import xml.etree.ElementTree as html

1.解析方法——html.parse("html.html") 

tree = html.parse("html.html")   #解析文件html.html

2.取根节点getroot()

root = tree.getroot()           #取根节点

3.每一个标签都被解析成一个对象,可以获取对象的属性,以root为例

(1)取节点名字root.tag

(2)取节点属性的键值对root.attrib

(3)取节点内容root.text

 

4.获取子节点

(1)获取特定的子节点

root.iter('year')    #只获取<year>标签的内容

(2)遍历所有的标签——for iter in root:

 

二、xml模块的方法

import xml.etree.ElementTree as ET

tree = ET.parse("xml_lesson")
root = tree.getroot()

# 修改
for node in root.iter('year'):
    new_year = int(node.text) + 1
    node.text = str(new_year)
    node.set("updated", "yes")   #updated为属性名     yes为属性值
tree.write("xml_lesson")          #写入新文件,可以覆盖原文件

# 删除node
for country in root.findall('country'):
    rank = int(country.find('rank').text)
    if rank > 50:
        root.remove(country)          #删除
tree.write('output.xml')                #重新写入文件

# 创建xml
import xml.etree.ElementTree as ET

new_xml = ET.Element("namelist")   #创建namelist根标签

name = ET.SubElement(new_xml, "name", attrib={"enrolled": "yes"})    #创建name子标签,添加属性enrolled:="yes"
age = ET.SubElement(name, "age", attrib={"checked": "no"})
sex = ET.SubElement(name, "sex")
sex.text = '33'
name2 = ET.SubElement(new_xml, "name", attrib={"enrolled": "no"})
age = ET.SubElement(name2, "age")
age.text = '19'

et = ET.ElementTree(new_xml)  # 生成文档对象
et.write("test.xml", encoding="utf-8", xml_declaration=True)

ET.dump(new_xml)  # 打印生成的格式

三、应用

暂无

 

 

 

————————————————————结束———————————————————— 

posted on 2018-07-23 15:19  索米尔  阅读(62)  评论(0)    收藏  举报

导航