栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python解析XML

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python解析XML

python解析XML XML样例


    
        
            
        
        
            
        
        
            
        
        
            
        
    
    
        
            
        
        
            
        
        
            
        
        
            
        
    

python解析XML可用的类库或模块有xml、libxml2 、lxml 、xpath等

常用的第三方库对比

常用的有三个分别是:xml.etree.ElementTree、xml.dom.*、xml.sax.*

第三方库优点缺点
xml.etree.ElementTree它速度更快,消耗的内存更少
xml.dom.*她文档中所有元素保存在内存中的一个树结构里,利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件消耗内存
xml.sax.*一、对大型文件进行处理;二、只需要文件的部分内容,或者只需从文件中得到特定信息;三、想建立自己的对象模型的时候ython中使用sax方式处理xml要先引入xml.sax中的parse函数,还有xml.sax.handler中的ContentHandler
xml.etree.ElementTree

xml.etree.ElementTree在Python标准库中有两种实现:

一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。从Python 3.3开始ElementTree模块会自动寻找可用的C库来加快速度,所以只需要import xml.etree.ElementTree就可以了

 
import xml.etree.ElementTree as ET
xml_path = r'DATA_DELETE_SQL.XML'

try:
    # 打开xml文档
    tree = ET.parse(xml_path)
    # 获取root节点
    root = tree.getroot()
    print(root.tag)
    # 通过下标访问
    print(root[0][1].tag)
    print(root[0][1].text)
except:
    print('打不开这个xml')

# 获取根节点下的节点信息
for child in root:
   print(child.tag)
   print(child.text)

# 获取root节点下的所有 row 节点
for row in root.findall('row'):
   print(row.tag)
   # 子节点下 TABLE_NAME 节点
   table_name = row.find('TABLE_NAME').text
   # 子节点下属性的值
   table_name_value = row.get('TABLE_NAME')

# 修改xml,移除根节点下所有row节点的 ID节点(注意此移除仅在本次会话中生效,并未修改xml内容)
for row in root.findall('row'):
    id = row.find('ID')
    row.remove(id)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/876796.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号