码迷,mamicode.com
首页 > 编程语言 > 详细

python xml模块

时间:2018-04-15 12:03:08      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:element   打开   pac   sel   one   mes   insert   /usr   path   

#! /usr/bin/env python
# -*- coding:utf-8 -*-
import xml

import requests
from xml.etree import ElementTree as et

## 1.以字符串方式读取xml文件
page = open(‘blog.xml‘,‘r‘,encoding=‘utf-8‘).read()
root = et.XML(page)
print(root.tag)# 当前节点的标签名 tag
for node in root:
print(node.tag,node.attrib,node.find(‘year‘).text)

#当前节点的属性 attrib
#当前节点的内容 text

##2.以解析文件方式打开文件,可修改文件内容
tree = et.parse(‘blog.xml‘)
rot = tree.getroot()
for nod in rot.iter(‘year‘):
new_year = int(nod.text)+1
nod.text = str(new_year)
# set(self, key, value):设置属性
# get(self, key, default=None):获取当前节点的属性值
nod.set(‘name‘,‘NF‘)
# 删除属性
del nod.attrib[‘name‘]

print(dir(rot))# 查看本层节点下有哪些方法

# append(self, subelement):为当前节点追加一个子节点
# extend(self, elements):为当前节点扩展 n 个子节点
# insert(self, index, subelement):在当前节点的子节点中插入某个节点,
# 即:为当前节点创建子节点,然后插入指定位置
#remove(self, subelement):在当前节点在子节点中删除某个节点
# findall(self, path, namespaces=None):获取所有的子节点
# iterfind(self, path, namespaces=None):
# 获取所有指定的节点,并创建一个迭代器(可以被for循环)
# clear(self):清空节点
#

tree.write(‘blog.xml‘)

##3.创建xml文件
#创建节点有三种方式:
##1)makeelement(self, tag, attrib):创建一个新节点
##2)Element(tag, attrib={}):创建一个节点
##3)SubElement(parent, tag, attrib={}, **extra)用来构造一个已经存在的节点的子节点

#创建根节点
fa = et.Element("father")

#创建子节点
s1 = et.Element(‘son‘,{‘name‘:"长子"})
s2 = fa.makeelement(‘son‘,{‘name‘:‘次子‘})
s3 = et.SubElement(fa,‘son‘,attrib={‘name‘:"三子"})

#将子节点添加到父节点
fa.append(s1)
fa.append(s2)
#prettify(elem):将节点转换成字符串,并添加缩进

#生成文档对象,写入文档
zp = et.ElementTree(fa)
zp.write("zp.xml",encoding=‘utf-8‘,short_empty_elements=False)

python xml模块

标签:element   打开   pac   sel   one   mes   insert   /usr   path   

原文地址:https://www.cnblogs.com/wuxinyan/p/8836766.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!