Python全栈开发:XML与parse对⽐#!/usr/bin/env python
# -*- coding;utf-8 -*-
"""
ET.XML和ET.parse的对⽐
1、返回对象差异:
ET.XML:Returns an Element ElementTree.Element对象不具有写的功能
ET.parse:返回ElementTree对象,ElementTree.ElementTree对象才具有写的功能
2、传⼊参数差异:
XML(text, parser=None):*text* is a string containing XML data
parse(source, parser=None):*source* is a filename or file object containing XML data
"""
python处理xml文件
import ElementTree as ET
# ⽅式⼀
# 打开⽂件,读取XML内容
str_xml = open("l").read()
# 将字符串解析成xml特殊对象,放⼊内存,root1代表xml的根节点,它是Element的对象,没有可写功能,不能写⼊⽂件
root1 = ET.XML(str_xml)  # 只能解析字符串,不能解析⽂件,Returns an Element instance
print(root1, type(root1))
# 错误:root1.write("l") 原因:ElementTree.Element' object has no attribute 'write'
# root1为xml的根节点,代表xml字符串
# 要保存的话要使⽤根节点(Element的对象)创建ElementTree对象
tree1 = ET.ElementTree(root1)  # 返回ElementTree对象
print(tree1, type(tree1))
tree1.write("l")
# ⽅式⼆
# 直接解析xml⽂件,tree具有可读功能,可以使⽤write⽅法写⼊⽂件
tree2 = ET.parse("l")  # 解析⽂件,不能解析字符串,返回ElementTree对象
# 获取xml⽂件的根节点,Return root element of this tree
root2 = t()
# 错误:root2.write("l") 原因:ElementTree.Element' object has no attribute 'write'
print(root2, type(root2))
tree2.write("l")

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。