20180209-xml模块
2024-09-03 15:54:01
xml的用法操作如下:
xml格式如下:
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank updated="yes">2</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank updated="yes">5</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank updated="yes">69</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
xml协议在各个语言中都是支持的,在python中可以使用如下模块操作xml
import xml.etree.ElementTree as ET tree = ET.parse('xmltest.xml')
root = tree.getroot()
print(root.tag)
# 输出
# data # 遍历xml文档
for child in root:
print(child.tag,child.attrib)
# 输出
# country {'name': 'Liechtenstein'}
# country {'name': 'Singapore'}
# country {'name': 'Panama'} for node in root:
for child in node:
print(child.tag,child.text)
# 输出
# rank 2
# year 2008
# gdppc 141100
# neighbor None
# neighbor None # rank 5
# year 2011
# gdppc 59900
# neighbor None # rank 69
# year 2011
# gdppc 13600
# neighbor None
# neighbor None # 只遍历year节点
for node in root.iter('year'):
print(node.tag,node.text) # 输出
# year 2008
# year 2011
# year 2011
修改和删除xml文档
# 修改
for node in root.iter('year'):
new_year = int(node.text) + 1
node.text = str(new_year)
node.set('update','yes')
tree.write('xmltest.xml') # 只遍历year节点
for node in root.iter('year'):
print(node.tag,node.text)
# 输出
# year 2009
# year 2012
# year 2012
# 删除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')
name = ET.SubElement(new_xml,'name',attrib={'enrolld': 'yes'})
age = ET.SubElement(name,'age',attrib={'checed': 'no'})
sex = ET.SubElement(name,'sex')
sex.text = '男' name2 = ET.SubElement(new_xml,'name',attrib={'enrolld': 'no'})
age = ET.SubElement(name2,'age')
age.text = '' et = ET.ElementTree(new_xml) #生成文档对象
et.write('test.xml',encoding='utf-8',xml_declaration=True) ET.dump(new_xml) #打印生成格式
最新文章
- div高度根据内容自动增大
- 用jsmooth + inno生成exe并制作简单安装包
- 【BZOJ】3771: Triple
- 解析posix与perl标准的正则表达式区别
- Codeforces Round #370 (Div. 2) A B C 水 模拟 贪心
- 【HDOJ】1242 Rescue
- gwt中java与js的相互调用
- (转)Spring读书笔记-----使用Spring容器(二)
- hasOwnProperty方法的使用
- Python type类具体的三大分类:metaclasses,classes,instance
- boost log库
- ios UIImagePickerController简单说明
- MYSQL水平拆分与垂直拆分
- vpdn1
- .NET HttpGet 获取服务器文件下的图片信息 同步和异步方式处理
- 如何在Ubuntu上安装腾讯QQ
- html div+css做页面布局
- springboot学习之授权Spring Security
- python 数字格式化
- apk的php解析
热门文章
- 【LGR-062】洛谷10月月赛 III div.2 (A-C)
- php import require include use vendor
- 触发写Redo&;nbsp;Log的条件
- hdu 1693 : Eat the Trees 【插头dp 入门】
- MyCat的启动
- input的文件上传类型判断
- TreeView拖动并存入数据库(可判断拖动)
- LintCode之主元素
- (转)dial tcp 10.96.0.1:443: getsockopt: no route to host --- kubernetes(k8s)DNS 服务反复重启
- IBatis.Net 下使用SqlBulkCopy 大批量导入数据 问题解决