Python3 xml模块的增删改查

python

xml数据示例

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

python plain"><data>

    <country name="Liechtenstein">

        <rank updated="yes">2</rank>

        <year updated_by="Alex">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_by="Alex">2012</year>

        <gdppc>59900</gdppc>

        <neighbor direction="N"name="Malaysia"/>

    </country>

    <country name="Panama">

        <rank updated="yes">69</rank>

        <year updated_by="Alex">2012</year>

        <gdppc>13600</gdppc>

        <neighbor direction="W"name="Costa Rica"/>

        <neighbor direction="E"name="Colombia"/>

        <info>

            <population>8</population>

            <size>960</size>

        </info>

    </country>

</data>

xml数据处理

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

importxml.etree.ElementTree as ET

 

'''xml 数据的处理 '''

tree =ET.parse("xmltest.xml")

root =tree.getroot() #数据内存地址

print(root.tag)  #标签

 

'''遍历所有数据'''

fori inroot:

    print(i.tag,i.attrib)  #attrib 获取属性名

    fork ini:

        print(k.tag,k.attrib,k.text) #text 文本内容

 

''' 遍历某一个标签的值 '''

forta inroot.iter("year"):

    print(ta.tag,ta.attrib,ta.text)

XML数据的创建

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

'''xml 数据的创建 '''

new_xml =ET.Element("personinfolist") #Element 根节点

personinfo =ET.SubElement(new_xml, "personinfo", attrib={"enrolled": "yes"})

name =ET.SubElement(personinfo, "name"#SubElement 子节点

name.text ="Alex Li"

age =ET.SubElement(personinfo, "age", attrib={"checked": "no"})

sex =ET.SubElement(personinfo, "sex")

age.text ='56'

personinfo2 =ET.SubElement(new_xml, "personinfo", attrib={"enrolled": "no"})

name =ET.SubElement(personinfo2, "name")

name.text ="Oldboy Ran"

age =ET.SubElement(personinfo2, "age")

age.text ='19'

 

et =ET.ElementTree(new_xml)  # 生成文档对象

et.write("test.xml", encoding="utf-8", xml_declaration=True)

""" xml_declaration 声明xml文件类型 """

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

XML数据的修改

?

1

2

3

4

5

6

7

8

9

10

11

12

13

'''xml 数据的修改 '''

fornode inroot.iter('year'):

    new_year =int(node.text) +1

    node.text =str(new_year)

    node.set("updated_by", "Alex")

tree.write("xmltest.xml")

 

# 删除node

forcountry inroot.findall('country'):

    rank =int(country.find('rank').text)

    ifrank > 50:

        root.remove(country)

tree.write('output.xml')

以上是 Python3 xml模块的增删改查 的全部内容, 来源链接: utcz.com/z/387221.html

回到顶部