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

 更新时间:2018年05月12日 15:48:10   作者:安迪的小熊  
这篇文章主要介绍了Python基于dom操作xml数据的方法,结合实例形式分析了Python针对xml格式文件的加载、读取、节点与属性遍历等相关操作技巧,需要的朋友可以参考下

本文实例讲述了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

运行结果截图:

PS:这里再为大家提供几款关于xml操作的在线工具供大家参考使用:

在线XML/JSON互相转换工具:
http://tools.jb51.net/code/xmljson

在线格式化XML/在线压缩XML
http://tools.jb51.net/code/xmlformat

XML在线压缩/格式化工具:
http://tools.jb51.net/code/xml_format_compress

XML代码在线格式化美化工具:
http://tools.jb51.net/code/xmlcodeformat

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python操作xml数据技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python configparser模块常用方法解析

    Python configparser模块常用方法解析

    这篇文章主要介绍了Python configparser模块常用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python一行代码实现ChatGPT接入微信机器人

    Python一行代码实现ChatGPT接入微信机器人

    这篇文章主要为大家介绍了Python一行代码实现ChatGPT接入微信机器人示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Python使用turtle模块绘制爱心图案

    Python使用turtle模块绘制爱心图案

    这篇文章主要为大家详细介绍了Python使用turtle模块绘制爱心图案,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 一文带你了解CNN(卷积神经网络)

    一文带你了解CNN(卷积神经网络)

    CNN是神经网络中的一种,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。本文主要讲解了CNN(卷积神经网络)的基础内容,想了解更多的小伙伴可以看一看这篇文章
    2021-09-09
  • Python练习-承压计算

    Python练习-承压计算

    这篇文章主要介绍了Python练习-承压计算,前面我们练习了Python购物单,这篇我们继续练习承压计算,和前篇文章一样还是问题描述开始,需要的小伙伴可以参考一下
    2022-01-01
  • Python约瑟夫生者死者小游戏实例讲解

    Python约瑟夫生者死者小游戏实例讲解

    在本篇文章里小编给大家分享的是一篇关于Python约瑟夫生者死者小游戏实例讲解内容,有兴趣的朋友们可以测试学习下。
    2021-01-01
  • Python线程之多线程展示详解

    Python线程之多线程展示详解

    这篇文章主要为大家介绍了Python线程之多线程展示,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • Python轻松查找文本文件最热门单词技巧

    Python轻松查找文本文件最热门单词技巧

    本文将从文件读取、文本预处理到单词频率统计,以及性能优化和数据可视化等方面逐步展开,为你呈现一场深入学习的旅程,让我们一同探索如何用代码揭示文字中的故事,发现其中隐藏的信息,从而更好地理解和利用这个数字化时代的宝藏
    2024-01-01
  • 推荐10款最受Python开发者欢迎的Python IDE

    推荐10款最受Python开发者欢迎的Python IDE

    这篇文章收集了一些对开发者非常有帮助的,最好的10款Python IDE,包括Vim,Eclipse with PyDev,Sublime Text,PyCharm等知明Python开发工具
    2018-09-09
  • 如何把python项目部署到linux服务器

    如何把python项目部署到linux服务器

    这篇文章主要介绍了如何把python项目部署到linux服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论