print "===========DOM方式解析XML文档======================="
'''
DOM 将XML文档定义为如下格式:
根节点
||
元素节点====属性节点
||
元素节点 OR 文本节点 OR CDATA节点
'''
from xml.dom.minidom import *
#传递文件路径或者是文件对象,如果是文件对象,调用parse之后,已经将DOM树加载到了内存
#,可以调用完之后立即关闭
domfile=parse("xmldata.xml")
#DOM以树的方式对xml解析,要求XML文档只能有一个根节点,
root=domfile.documentElement
#xml的DOM树已经加载到内存,因此文件可以关闭了
#可以用getElementsByTag来根据标签名来获取节点
children=root.childNodes
users=[]
user={}
for child in children:
#跳过空格、回车等Text_Node=3子元素、ELEMENT_NODE=1、ATTRIBUTE_NODE=2
if child.nodeType==root.ELEMENT_NODE:
#通过attributes属性获取父节点的所有属性节点,通过方法getAttribute获取指定属性的值
user.update({"name":child.getAttribute("name")})
grands=child.childNodes
for grand in grands:
#元素节点本身不包含值,只能通过获取被它包含的文本节点、属性节点来读取值
if grand.nodeType==root.ELEMENT_NODE:
texts=grand.childNodes
#Python 2.6以后,文本节点的值通过nodeValue属性获取,而不是text属性
user.update({"description":texts[0].nodeValue.strip()})
users.append(user)
#处理完一个user之后,注意重置中间变量
user={}
#DOM将空格、回车等XML格式化的内容认为是文本节点,必须跳过处理
print users
for user in users:
for item in user.items():
key,value=item
print key,value.encode("GBK")
处理的数据时一样的
分享到:
相关推荐
在Python中解析XML文件是一种常见的需求,特别是在处理配置文件、数据交换格式以及其他需要结构化数据的应用场景中。本文将详细介绍如何使用两种流行的方法——`MiniDom`和`ElementTree`来解析XML文件。 #### 1. ...
总结起来,`xml.dom.minidom`是Python中处理XML数据的强大工具,通过其提供的API,我们可以方便地解析XML文档,获取或修改XML节点的各种信息。这个实例展示了如何读取XML文件,提取特定元素的属性和文本值,为实际...
对于需要对XML文档进行深入分析和修改的开发者来说,掌握DOM解析方法是非常有帮助的。此外,本文中提到的技巧和注意事项能够帮助开发者避免一些常见的错误,并提升处理XML数据的效率和准确性。对于希望通过Python...
DOM解析的优点在于它提供了对XML文档的随机访问,但缺点是占用内存大,如果XML文件很大,可能会导致性能问题。 SAX解析则是一种事件驱动的解析方式,它不将整个XML文档加载到内存中,而是逐行读取文件,遇到元素...
为了处理XML文档,Python提供了xml.dom模块,它提供了DOM(Document Object Model)接口,用于解析XML并将其表示为一个树形结构,便于操作和查询。 一、XML的基本概念与特征 1. XML是基于标签对的,如`<aa></aa>`。...
总结来说,Python中的DOM解析XML文件主要涉及加载文件、查找特定节点、遍历节点以及提取和处理节点的文本。通过掌握这些基本操作,你可以有效地解析XML文件并根据需要获取所需信息。在实际项目中,应根据XML文件的...
- Python:`xml.dom.minidom`库支持DOM解析。 - C#:.NET框架的`System.Xml`命名空间包含DOM解析。 - JavaScript:`document`对象提供了DOM接口,可以解析和操作HTML或XML。 5. 实践应用: - 数据交换:在...
Python中的`xml.dom.minidom`模块提供了DOM解析功能,可以使用`parse()`函数加载XML文件,然后通过DOM树的节点方法进行操作,如`getElementsByTagName`、`getAttribute`等。 3. **ElementTree解析**: Element...
Python 语言是使用 XML 文档的理想语言之一,它具有强大的文本操作能力和灵活的脚本语言特点。Python 中的 XML 工具可以帮助语法分析、处理和生成 XML。关于 XML,要记住一个总体概念:可以验证或非验证方式处理 XML...
Python 提供了几种处理 XML 的库,其中 `xml.dom.minidom` 是一种简单而强大的工具,用于解析、更新和写入 XML 文件。本文将详细介绍如何使用 `xml.dom.minidom` 来解析 XML 文件、更新 XML 文件中的特定节点,并向...
XmlDom是Python中的一个强大的XML处理模块,它允许开发者通过DOM(Document Object Model)接口来操作XML文档。DOM是一种将XML文档转换为树型结构的模型,使得我们可以方便地对XML文档进行读取、修改和创建。 首先...
而xml.etree.ElementTree是Python的另一XML处理模块,提供了较为全面的XML处理功能,包括创建、修改和查询XML文档等,其执行效率比xml.dom.minidom更高,更适合处理大型文件。 在使用这两个模块之前,需要先导入...
要使用 Python 读取 XML 文件,需要使用 xml.dom.minidom 模块,该模块提供了 parse() 函数来打开 XML 文件,并将其解析成一个文档对象。 以下是一个使用 Python 读取 XML 文件的示例代码: ``` #coding=utf-8 ...
- **简介**:`xmllib` 是Python中最基础的XML解析器之一,它是一个非验证性的低级解析器,主要用于简单的XML文档解析。通过继承 `xmllib.XMLParser` 类并覆盖其方法,可以实现对特定元素和实体的自定义处理逻辑。 - ...
这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,... python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合
Python作为一种强大的编程语言,提供了多种库来解析XML文件,使得处理XML数据变得简单易行。本主题将深入探讨如何使用Python来解析XML文件。 在Python中,常用的XML解析库有`xml.dom.minidom`、`ElementTree`(包括...