Python全栈开发:XML与parse对比
2024-09-06 11:33:32
#!/usr/bin/env python
# -*- coding;utf-8 -*-
"""
ET.XML和ET.parse的对比
1、返回对象差异:
ET.XML:Returns an Element instance,xml.etree.ElementTree.Element对象不具有写的功能
ET.parse:返回ElementTree对象,xml.etree.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
"""
from xml.etree import ElementTree as ET # 方式一
# 打开文件,读取XML内容
str_xml = open("first.xml").read() # 将字符串解析成xml特殊对象,放入内存,root1代表xml的根节点,它是Element的对象,没有可写功能,不能写入文件
root1 = ET.XML(str_xml) # 只能解析字符串,不能解析文件,Returns an Element instance
print(root1, type(root1))
# 错误:root1.write("file3.xml") 原因:xml.etree.ElementTree.Element' object has no attribute 'write'
# root1为xml的根节点,代表xml字符串
# 要保存的话要使用根节点(Element的对象)创建ElementTree对象
tree1 = ET.ElementTree(root1) # 返回ElementTree对象
print(tree1, type(tree1))
tree1.write("tree1.xml") # 方式二
# 直接解析xml文件,tree具有可读功能,可以使用write方法写入文件
tree2 = ET.parse("first.xml") # 解析文件,不能解析字符串,返回ElementTree对象 # 获取xml文件的根节点,Return root element of this tree
root2 = tree2.getroot()
# 错误:root2.write("file4.xml") 原因:xml.etree.ElementTree.Element' object has no attribute 'write'
print(root2, type(root2))
tree2.write("tree2.xml")
最新文章
- 让hammer完美支持Pixi.js - 2D webG库
- #1000 A + B (hihoCoder)
- rtf格式的一些说明,转载的
- Eclipse常用的快捷键
- Mac 如何安装Homebrew?
- robots
- nginx配置相关
- MVC controller and View
- C++ Primer 学习笔记_67_面向对象编程 --转换与继承、复制控制与继承
- Python学习入门基础教程(learning Python)--3.1Python的if分支语句
- P3003 [USACO10DEC]苹果交货Apple Delivery
- linux报错:命令未找到
- PHP-MVC和Smarty初探笔记
- C#System.Text.RegularExpressions.Regex使用(一) .
- Chromedriver executable needs to be in path 解决办法
- Java爬虫——常用的maven依赖
- 设计模式のMediatorPattern(中介者模式)----行为模式
- 基于HTTP可供浏览器调用的本地打印程序
- Hibernate注意项
- 【LeetCode】230. Kth Smallest Element in a BST (2 solutions)
热门文章
- java中get请求的中文乱码问题
- random,time,sys,os,序列化模块
- Scala 学习2
- 8张图带你轻松温习Java知识
- drools原生drl规则文件的使用
- spring MVC 转发与重定向(传参)
- Flutter 打包报错 : Unknown FLUTTER_BUILD_MODE: xxx
- ionic js 侧栏菜单 把主要内容区域从一边拖动到另一边,来让左侧或右侧的侧栏菜单进行切换
- 关于jquery.validate.js的用法
- python2与python3编码