这篇文章主要为大家详细介绍了python序列化功能之xml具有一定的参考价值,感兴趣的小伙伴们可以参考一下
1 1978 27804358 2 1982 8273371
登录后复制
上面是一段xml文本的示例,如果要对xml文本进行处理,需要导入一个模块。
import xml.etree.ElementTree as ET
#由于xml模块的名字太长,使用as给它取了个别名,叫ET。
ET.parse() 从文件中直接读取xml文本,将xml文本解析成为xml树对象。
tree = ET.parse(“diva.xml”)
获取该xml树的根节点。
root = tree.getroot()
获取根节点的标签(名称)。
root.tag
#遍历xml文档
for child in root:
print(child.tag, child.attrib)
for i in child:
print(i.tag,i.text)
注意!如果想取xml文本下的子节点,必须通过根节点去取,任何节点后面加上.tag都可以取到节点中的标签名,任何节点加上.text都可以取到每个节点包含的内容,attrib 可以取到节点中标签中存在的属性。
#获取每个子节点的album_sales_volume标签中的文本内容。
for i in root.iter(“album_sales_volume”):
print i.text
#如果是要获取标签内的属性,直接把text改成attrib即可。
修改:
for node in root.iter(‘year’):
new_year = int(node.text) + 1
node.text = str(new_year) #修改内容
node.set(“flop”,”no”) #修改标签属性。
tree.write(“xmltest.xml”)
删除:
for country in root.findall(‘country’):
rank = int(country.find(‘rank’).text)
if rank > 50:
root.remove(country)
tree.write(‘output.xml’)
root.findall() 用于从根节点开始查找,查找到指定名字的子节点。
root.remove()用于删除一个节点。
生成xml文本。
import xml.etree.ElementTree as ET
new_xml = ET.Element(“namelist”)
name = ET.SubElement(new_xml,”name”,attrib={“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) #打印生成的格式
以上就是python序列化功能之xml的详细介绍的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2274895.html