返回顶部
首页 > 资讯 > 后端开发 > Python >怎么使用Python读取xml文件
  • 559
分享到

怎么使用Python读取xml文件

2023-07-06 00:07:31 559人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

本篇内容介绍了“怎么使用python读取xml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 什么是xml?xml即可扩展标记语言,它可

本篇内容介绍了“怎么使用python读取xml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

 什么是xml?

xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。

abc.xml

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

Ok ,从结构上,它很像我们常见的html超文本标记语言。但他们被设计的目的是不同的,超文本标记语言被设计用来显示数据,其焦点是数据的外观。它被设计用来传输和存储数据,其焦点是数据的内容。

那么它有如下特征:

首先,它是有标签对组成,<aa></aa>

标签可以有属性:<aa id=&rsquo;123&rsquo;></aa>

标签对可以嵌入数据:<aa>abc</aa>

标签可以嵌入子标签(具有层级关系):

<aa>

     <bb></bb>

</aa>

获得标签属性

那么,下面来介绍如何用python来读取这种类型的文件。

#coding=utf-8import  xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('abc.xml')#得到文档元素对象root = dom.documentElementprint root.nodeNameprint root.nodeValueprint root.nodeTypeprint root.ELEMENT_NODE

mxl.dom.minidom 模块被用来处理xml文件,所以要先引入。

xml.dom.minidom.parse() 用于打开一个xml文件,并将这个文件对象dom变量。

documentElement 用于得到dom对象的文档元素,并把获得的对象给root

每一个结点都有它的nodeName,nodeValue,nodeType属性。

nodeName为结点名字。

nodeValue是结点的值,只对文本结点有效。

nodeType是结点的类型。catalog是ELEMENT_NODE类型

现在有以下几种:

  • 'ATTRIBUTE_NODE'

  • 'CDATA_SECTION_NODE'

  • 'COMMENT_NODE'

  • 'DOCUMENT_FRAGMENT_NODE'

  • 'DOCUMENT_NODE'

  • 'DOCUMENT_TYPE_NODE'

  • 'ELEMENT_NODE'

  • 'ENTITY_NODE'

  • 'ENTITY_REFERENCE_NODE'

  • 'NOTATION_NODE'

  • 'PROCESSING_INSTRUCTION_NODE'

  • 'TEXT_NODE'

  • NodeTypes - 有名常数

获得子标签

现在要获得catalog的子标签以的标签name

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

对于知道元素名字的子元素,可以使用getElementsByTagName方法获取:

#coding=utf-8import  xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('abc.xml')#得到文档元素对象root = dom.documentElementbb = root.getElementsByTagName('maxid')b= bb[0]print b.nodeNamebb = root.getElementsByTagName('login')b= bb[0]print b.nodeName

如何区分相同标签名字的标签:

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

<caption>和<item>标签不止一个如何区分?

#coding=utf-8import  xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('abc.xml')#得到文档元素对象root = dom.documentElementbb = root.getElementsByTagName('caption')b= bb[2]print b.nodeNamebb = root.getElementsByTagName('item')b= bb[1]print b.nodeName

root.getElementsByTagName('caption') 获得的是标签为caption 一组标签,b[0]表示一组标签中的第一个;b[2] ,表示这一组标签中的第三个。

获得标签属性值

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

<login>和<item>标签是有属性的,如何获得他们的属性?

#coding=utf-8import  xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('abc.xml')#得到文档元素对象root = dom.documentElementitemlist = root.getElementsByTagName('login')item = itemlist[0]un=item.getAttribute("username")print unpd=item.getAttribute("passwd")print pdii = root.getElementsByTagName('item')i1 = ii[0]i=i1.getAttribute("id")print ii2 = ii[1]i=i2.getAttribute("id")print i

getAttribute方法可以获得元素的属性所对应的值。

获得标签对之间的数据

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

获得标签对之间的数据有多种方法,

方法一

#coding=utf-8import  xml.dom.minidom#打开xml文档dom = xml.dom.minidom.parse('abc.xml')#得到文档元素对象root = dom.documentElementcc=dom.getElementsByTagName('caption')c1=cc[0]print c1.firstChild.datac2=cc[1]print c2.firstChild.datac3=cc[2]print c3.firstChild.data

firstChild 属性返回被选节点的第一个子节点,.data表示获取该节点人数据。

方法二

#coding=utf-8from xml.etree import ElementTree as ETper=ET.parse('abc.xml')p=per.findall('./login/item')for oneper in p:    for child in oneper.getchildren():        print child.tag,':',child.textp=per.findall('./item')for oneper in p:    for child in oneper.getchildren():        print child.tag,':',child.text

方法二有点复杂,所引用模块也与前面的不一样,findall用于指定在哪一级标签下开始遍历。

getchildren方法按照文档顺序返回所有子标签。并输出标签名(child.tag)和标签的数据(child.text)

其实,方法二的作用不在于此,它核心功能是可以遍历某一级标签下的所有子标签。

“怎么使用Python读取xml文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么使用Python读取xml文件

本文链接: https://lsjlt.com/news/356295.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用Python读取xml文件
    本篇内容介绍了“怎么使用Python读取xml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 什么是xml?xml即可扩展标记语言,它可...
    99+
    2023-07-06
  • 如何使用Python读取xml文件
    目录 什么是xml?获得标签属性获得子标签获得标签属性值获得标签对之间的数据方法一方法二 什么是xml? xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自...
    99+
    2023-05-15
    Python读取 Python读取xml Python读取文件
  • python读取xml文件
    什么是xml?xml即可扩展标记语言,它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。abc.xml<xml version="1.0" encoding="utf-8"> <catalo...
    99+
    2023-01-31
    文件 python xml
  • C++中怎么使用TinyXML读取xml文件
    这篇文章主要介绍了C++中怎么使用TinyXML读取xml文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++中怎么使用TinyXML读取xml文件文章都会有所收获,下面我们一起来看看吧。前言TinyXML...
    99+
    2023-07-02
  • C#怎么读取XML文件
    这篇文章主要讲解了“C#怎么读取XML文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么读取XML文件”吧!用C#读取XML文件源程序代码,具体如下:using Syste...
    99+
    2023-06-17
  • VB.NET怎么读取XML文件
    这篇文章主要介绍“VB.NET怎么读取XML文件”,在日常操作中,相信很多人在VB.NET怎么读取XML文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VB.NET怎么读取XML文件”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • java怎么读取xml文件
    在Java中,可以使用Java内置的XML解析器来读取XML文件。下面是一个简单的示例: import javax.xml.pars...
    99+
    2023-10-23
    java
  • 怎么用dom4j读取xml配置文件
    本篇内容主要讲解“怎么用dom4j读取xml配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用dom4j读取xml配置文件”吧!实现步骤以及源码:1、写xml文件读取类读取xml文档内...
    99+
    2023-06-03
  • java怎么读取xml配置文件
    在Java中,读取XML配置文件有多种方法,其中比较常用的是使用DOM解析器或者SAX解析器。1. 使用DOM解析器:```java...
    99+
    2023-09-11
    java
  • 使用python怎么读取文件名
    这篇文章给大家介绍使用python怎么读取文件名,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、...
    99+
    2023-06-14
  • 使用python怎么读取txt文件
    这期内容当中小编将会给大家带来有关使用python怎么读取txt文件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。(1)txt的切割读取对应内容   (2)时间差计算txt文...
    99+
    2023-06-14
  • 怎么使用python open读取文件
    要使用Python的open函数来读取文件,你需要使用以下步骤:1. 打开文件:使用open函数打开文件,并传入文件路径和打开模式作...
    99+
    2023-09-14
    python
  • 如何用Ajax读取xml文件
    本篇内容介绍了“如何用Ajax读取xml文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • Linux下怎么使用Python读取文件
    这篇文章主要介绍“Linux下怎么使用Python读取文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Linux下怎么使用Python读取文件”文章能帮助大家解决问题。不论是数据分析,数据可视化,...
    99+
    2023-06-27
  • C#怎么读取Xml文档
    这篇文章主要讲解了“C#怎么读取Xml文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#怎么读取Xml文档”吧!C# 操作XML之读取Xml的作用:如果我们有现成的Xml文档,那么,我们...
    99+
    2023-06-17
  • dom4j如何读取XML文件
    小编给大家分享一下dom4j如何读取XML文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!dom4j是一个Java的XML API,类似于jdom,用来读写XM...
    99+
    2023-05-30
    dom4j xml
  • python 使用fileinput读取文件
    目录1. 从标准输入中读取 2. 单独打开一个文件 3. 批量打开多个文件 4. 读取的同时备份文件 5. 标准输出重定向替换 6. 不得不介绍的方法 7. 进阶一点的玩法 8. 列...
    99+
    2024-04-02
  • 怎么用Python读取CSV文件
    这篇文章主要介绍了怎么用Python读取CSV文件,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。典型的数据集stocks.csv:一个股票的数据集,其实就是常见的表格数据。有...
    99+
    2023-06-25
  • 怎么使用filechannel读取文件
    要使用FileChannel读取文件,可以按照以下步骤进行操作: 打开一个文件Channel,可以使用FileInputStrea...
    99+
    2023-10-23
    filechannel
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作