Python基础知识值XML

一、XML内容

<data>    <country name="Liechtenstein">        <rank updated="yes">2</rank>        <year>2023</year>        <gdppc>141100</gdppc>        <neighbor direction="E" name="Austria" />        <neighbor direction="W" name="Switzerland" />    </country>    <country name="Singapore">        <rank updated="yes">5</rank>        <year>2026</year>        <gdppc>59900</gdppc>        <neighbor direction="N" name="Malaysia" />    </country>    <country name="Panama">        <rank updated="yes">69</rank>        <year>2026</year>        <gdppc>13600</gdppc>        <neighbor direction="W" name="Costa Rica" />        <neighbor direction="E" name="Colombia" />    </country></data>

1.解析 XML

from xml.etree import ElementTree as ET
#打开XML,读取XML的内容
str_xml = open("fisrt1.xml",‘r‘).read()
#将字符串解析成XML对象
root = ET.XML(str_xml)

2.直接解析XML文档
#直接解析XML文件str_xml = ET.parse("fisrt1.xml")
#获取XML文件的根节点root = str_xml.getroot()

2.操作XML文件

a.遍历XML文档中的所有内容
from xml.etree import ElementTree as ET

#直接解析XML文件str_xml = ET.parse("fisrt1.xml")

#获取XML文件的根节点root = str_xml.getroot()

#顶层标签

print(root.tag)

#遍历XML文件的第二层标签for child in root:    print(child.tag, child.attrib)

#遍历XML文件的第三层标签    for sub_child in child:        print(sub_child.tag, sub_child.text)

b.遍历XML文件中指点的节点
from xml.etree import ElementTree as ET

#打开XML,读取XML的内容

#直接解析XML文件str_xml = ET.parse("fisrt1.xml")

#获取XML文件的根节点root = str_xml.getroot()

#顶层标签

print(root.tag)

for node in root.iter("year"):    print(node.tag, node.text)

for node in root.iter("gdppc"):    print(node.tag, node.text)

C.修改节点的内容 由于修改节点内容时,均是在内存中进行,不会对文件的内容造成影响。如果要修改文件的内容成功,则需要将内存修改的结果保存到文件中
from xml.etree import ElementTree as ET

#直接解析XML文件str_xml = ET.parse("fisrt1.xml")

#获取XML文件的根节点root = str_xml.getroot()

#顶层标签print(root.tag)

#修改节点的内容for node in root.iter("year"):

#将节点的内容自加1    new_year = int(node.text) + 1    node.text = str(new_year)

#设置节点    node.set(‘name‘, ‘hjw‘)    node.set(‘age‘,‘18‘)

# 保存修改的文件tree = ET.ElementTree(root)tree.write(‘aa.xml‘, encoding = ‘utf-8‘)

d.删除节点
from xml.etree import ElementTree as ET

#直接解析XML文件str_xml = ET.parse("fisrt1.xml")

#获取XML文件的根节点root = str_xml.getroot()

#顶层标签print(root.tag)

#遍历data下的country下节点for country in root.findall(‘country‘):    #获取每个rank节点的内容    rank = int(country.find(‘rank‘).text)

if rank > 50:        #删除指定的country节点        root.remove(country)

#保存修改后的内容tree = ET.ElementTree(root)tree.write(‘bb.xml‘, encoding=‘utf-8‘)

3.创建XML
from xml.etree import ElementTree as ET

#创建根节点

root = ET.Element(‘famliy‘)

#创建节点大儿子son1 = ET.Element(‘son‘, {‘name‘ : ‘儿1‘})#创建节点小儿子son2 = ET.Element(‘son‘, {‘name‘ : ‘儿2‘})

#在大儿子中创建孙子节点grandson1 = ET.Element(‘grandson‘, {‘name‘ : ‘儿11‘})grandson2 = ET.Element("grandson", {‘name‘ : ‘儿12‘})

#把孙子添加到儿1中son1.append(grandson1)son1.append(grandson2)

#把儿子添加中根节点中root.append(son1)root.append(son2)

#b保存文件tree = ET.ElementTree(root)tree.write(‘new_son1.xml‘, encoding = ‘utf-8‘)




				
时间: 2024-08-02 23:30:17

Python基础知识值XML的相关文章

Python基础知识之xml模块

转载自:http://www.cnblogs.com/alex3714/articles/5161349.html XML处理模块: ml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融行业的很多系统的接口还主要是xml. xml的格式如下,就是通过<>节点来区别数据结构的: <?xml version="1.0"?> <dat

python 基础知识(一)

                                       python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者.Python是从ABC发展起来,主要受到了Modula-3(另一种相当

Python基础知识两部曲:二

如果没有看基础部分第一章,请前往Python基础知识两部曲:一 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是--greet_user ()是必须带上的,这里可以可以传递一些参数,也可以不传 以:结尾,且与后面所有的缩进构成了函数体 调用函数直接写上函数名,如果有参数记得带上参数 1. 无参数的函数: def greet_user(): """显示简单的函数体""" print(&qu

Python基础知识梳理 - 第02部分

本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等. Python还提供了若干处理数字对象的工具, 如内置数学函数pow, abs等, 标准库math, random等. 看下数字的简单使用. In [15]: 123 + 234 Out[15]: 357 In [16]: 1.5 * 4 Out[16]: 6.0 In [32]: pow(2,

python基础知识部分练习大全

python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行有 #!/usr/bin/env python3 指定执行语言 2.简述位.字节的关系 答:一个字节(byte)=8位(bit)  位为最小的单位 3.简述 ascii.unicode.utf-8.gbk 的关系 ascii:只能表示256个符号 unicode:万国码,各国都有 需要有2位来表示 utf-8

Python基础知识(五)

# -*- coding: utf-8 -*-# @Time : 2018-12-25 19:31# @Author : 三斤春药# @Email : [email protected]# @File : Python基础知识(五).py# @Software : PyCharm Python基础知识(五)今日内容大纲:昨日内容回顾 list: 增:append() insert(index,object) extend() 迭代着追加 删: pop 默认删除最后一个,按照索引去删除,有返回值.

Python基础知识(五)------字典

Python基础知识(四)------字典 字典 一丶什么是字典 ? dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ? 键: 必须是可哈希,(不可变的数据类型),必须是唯一的 ? 值: 任意数据类型 特点: ? 查询的效率非常高,通过key来查找元素 ? 内部使用key来计算一个内存地址(暂时), hash算法,key必须是不可变的数据类型(key 必须是可哈希的数据类型),key必须是不可变的数据类型 ? 字典是无序的, python3.6版本以上,默

Python基础知识(四)

Python基础知识(四) 一丶列表 定义格式: 是一个容器,由 [ ]表示,元素与元素之间用逗号隔开. 如:name=["张三","李四"] 作用: 存储任意类型的数据 (32位机器能存5亿多,64为机器存储更多) 特点: 可变 (增,删,改,查) 默认从左到右 ,从0开始 . 有序(索引,切片,步长) 操作: 增 , 删 , 改 ,查 ,索引,切片,步长 ?? #列表的两种定义方式 name=["香蕉","西瓜",&quo

Python 入门之Python基础知识

Python 入门之Python基础知识 1.变量 (1)变量就是把程序运行的中间结果临时存在内存中,以便后续代码使用 (2)变量的作用: 昵称,就是代指内存中某个地址中的内容 a = 123 变量名 赋值 值 (3)变量命名的规则: (1). 变量名由字母.数字.下划线组成 (2). 变量名不能以数字开头 (3). 变量名要具有可描述性 (4). 变量名要区分大小写 (5). 变量名禁止使用Python关键字 (6). 变量名不能使用中文和拼音(不是不能使用,太low) (7). 变量名推荐写