Python基于dom操作xml数据的方法示例


Posted in Python onMay 12, 2018

本文实例讲述了Python基于dom操作xml数据的方法。分享给大家供大家参考,具体如下:

1、xml的内容为del.xml,如下

<?xml version="1.0" encoding="utf-8"?>
<catalog>
 <maxid>4</maxid>
 <login username="pytest" passwd='123456'>
  <caption>Python</caption>
  <item id="4">
   <caption>test</caption>
  </item>
 </login>
 <item id="2">
  <caption>Zope</caption>
 </item>
</catalog>

2、python的代码如下

# -*- coding:utf-8 -*-
#! python3
#1、获得标签属性
print("#1、获得标签属性")
import xml.dom.minidom
dom = xml.dom.minidom.parse("del.xml") #打开xml文档
root = dom.documentElement #得到xml文档
print("nodeName:",root.nodeName) #
print("nodeValue:",root.nodeValue)
print("nodeType:",root.nodeType)
print("ELEMENT_NODE:",root.ELEMENT_NODE)
#2、获得子标签
print("#2、获得子标签")
bb = root.getElementsByTagName('maxid')
print(type(bb))
print(bb)
b = bb[0]
print(b.nodeName)
print(b.nodeValue)
#3、获取标签属性值
print("#3、获取标签属性值")
itemlist = root.getElementsByTagName('login')
item =itemlist[0]
print(item.getAttribute("username"))
print(item.getAttribute("passwd"))
itemlist = root.getElementsByTagName('item')
item = itemlist[0]   #通过在itemlist中的位置区分
print(item.getAttribute("id"))
item_1 = itemlist[1]  #通过在itemlist中的位置区分
print(item_1.getAttribute("id"))
#4、获得标签对之间的数据
print("#4、获得标签对之间的数据")
itemlist1 = root.getElementsByTagName('caption')
item1 = itemlist1[0]
print(item1.firstChild.data)
item2 = itemlist1[1]
print(item2.firstChild.data)
#5总结
# minidom.parse(filename)
# 加载读取XML文件
#
# doc.documentElement
# 获取XML文档对象
#
# node.getAttribute(AttributeName)
# 获取XML节点属性值
#
# node.getElementsByTagName(TagName)
# 获取XML节点对象集合
#
# node.childNodes # 返回子节点列表。
#
# node.childNodes[index].nodeValue
# 获取XML节点值
#
# node.firstChild
# # 访问第一个节点。等价于pagexml.childNodes[0]

3、运行结果如下:

#1、获得标签属性
nodeName: catalog
nodeValue: None
nodeType: 1
ELEMENT_NODE: 1
#2、获得子标签
<class 'xml.dom.minicompat.NodeList'>
[<DOM Element: maxid at 0x1dad800>]
maxid
None
#3、获取标签属性值
pytest
123456
4
2
#4、获得标签对之间的数据
Python
test

运行结果截图:

Python基于dom操作xml数据的方法示例

Python 相关文章推荐
详解Python pygame安装过程笔记
Jun 05 Python
python自定义异常实例详解
Jul 11 Python
python用户管理系统的实例讲解
Dec 23 Python
实时获取Python的print输出流方法
Jan 07 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
pytorch 输出中间层特征的实例
Aug 17 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
Oct 30 Python
pytorch实现onehot编码转为普通label标签
Jan 02 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
利用Python+OpenCV三步去除水印
May 28 Python
Python实现使用卷积提取图片轮廓功能示例
May 12 #Python
在cmd中运行.py文件: python的操作步骤
May 12 #Python
对命令行模式与python交互模式介绍
May 12 #Python
python执行系统命令后获取返回值的几种方式集合
May 12 #Python
在CMD命令行中运行python脚本的方法
May 12 #Python
在cmd命令行里进入和退出Python程序的方法
May 12 #Python
对python中执行DOS命令的3种方法总结
May 12 #Python
You might like
推荐一篇入门级的Class文章
2007/03/19 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
PHP中计算字符串相似度的函数代码
2012/12/29 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
2019/04/12 PHP
laravel model模型处理之修改查询或修改字段时的类型格式案例
2019/10/17 PHP
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
微信小程序 常见问题总结(4058,40013)及解决办法
2017/01/11 Javascript
js 调用百度分享功能
2017/02/27 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
Nodejs实现图片上传、压缩预览、定时删除功能
2019/10/25 NodeJs
javascript 易错知识点实例小结
2020/04/25 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
Djang中静态文件配置方法
2015/07/30 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
2016/12/15 Python
Python实现Linux中的du命令
2017/06/12 Python
使用 Python 实现微信公众号粉丝迁移流程
2018/01/03 Python
python保存文件方法小结
2018/07/27 Python
windows下numpy下载与安装图文教程
2019/04/02 Python
机器学习实战之knn算法pandas
2019/06/22 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
库存图片、照片、矢量图、视频和音乐:Shutterstock
2021/02/12 全球购物
幼儿园毕业典礼主持词
2014/03/21 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
2015年度培训工作总结范文
2015/04/02 职场文书
演讲开场白和结束语
2015/05/29 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
新教师教学工作总结
2015/08/14 职场文书
导游词之岳阳楼
2019/09/25 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA