`
剑锋凛冽
  • 浏览: 75539 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Python处理XML之DOM解析

阅读更多

 

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文件

    在Python中解析XML文件是一种常见的需求,特别是在处理配置文件、数据交换格式以及其他需要结构化数据的应用场景中。本文将详细介绍如何使用两种流行的方法——`MiniDom`和`ElementTree`来解析XML文件。 #### 1. ...

    python 解析XML python模块xml.dom解析xml实例代码

    总结起来,`xml.dom.minidom`是Python中处理XML数据的强大工具,通过其提供的API,我们可以方便地解析XML文档,获取或修改XML节点的各种信息。这个实例展示了如何读取XML文件,提取特定元素的属性和文本值,为实际...

    Python解析xml中dom元素的方法

    对于需要对XML文档进行深入分析和修改的开发者来说,掌握DOM解析方法是非常有帮助的。此外,本文中提到的技巧和注意事项能够帮助开发者避免一些常见的错误,并提升处理XML数据的效率和准确性。对于希望通过Python...

    XML解析实践之DOM解析和SAX解析.rar

    DOM解析的优点在于它提供了对XML文档的随机访问,但缺点是占用内存大,如果XML文件很大,可能会导致性能问题。 SAX解析则是一种事件驱动的解析方式,它不将整个XML文档加载到内存中,而是逐行读取文件,遇到元素...

    python中利用xml.dom模块解析xml的方法教程

    为了处理XML文档,Python提供了xml.dom模块,它提供了DOM(Document Object Model)接口,用于解析XML并将其表示为一个树形结构,便于操作和查询。 一、XML的基本概念与特征 1. XML是基于标签对的,如`<aa></aa>`。...

    dom_xml.rar

    总结来说,Python中的DOM解析XML文件主要涉及加载文件、查找特定节点、遍历节点以及提取和处理节点的文本。通过掌握这些基本操作,你可以有效地解析XML文件并根据需要获取所需信息。在实际项目中,应根据XML文件的...

    xml解析之DOM

    - Python:`xml.dom.minidom`库支持DOM解析。 - C#:.NET框架的`System.Xml`命名空间包含DOM解析。 - JavaScript:`document`对象提供了DOM接口,可以解析和操作HTML或XML。 5. 实践应用: - 数据交换:在...

    Python如何对XML 解析

    Python中的`xml.dom.minidom`模块提供了DOM解析功能,可以使用`parse()`函数加载XML文件,然后通过DOM树的节点方法进行操作,如`getElementsByTagName`、`getAttribute`等。 3. **ElementTree解析**: Element...

    python读取XML文件资料集合

    Python 语言是使用 XML 文档的理想语言之一,它具有强大的文本操作能力和灵活的脚本语言特点。Python 中的 XML 工具可以帮助语法分析、处理和生成 XML。关于 XML,要记住一个总体概念:可以验证或非验证方式处理 XML...

    python解析xml文件方式(解析、更新、写入)

    Python 提供了几种处理 XML 的库,其中 `xml.dom.minidom` 是一种简单而强大的工具,用于解析、更新和写入 XML 文件。本文将详细介绍如何使用 `xml.dom.minidom` 来解析 XML 文件、更新 XML 文件中的特定节点,并向...

    XmlDom - 全能最强XML模块

    XmlDom是Python中的一个强大的XML处理模块,它允许开发者通过DOM(Document Object Model)接口来操作XML文档。DOM是一种将XML文档转换为树型结构的模型,使得我们可以方便地对XML文档进行读取、修改和创建。 首先...

    Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法

    而xml.etree.ElementTree是Python的另一XML处理模块,提供了较为全面的XML处理功能,包括创建、修改和查询XML文档等,其执行效率比xml.dom.minidom更高,更适合处理大型文件。 在使用这两个模块之前,需要先导入...

    python读取xml文件.doc

    要使用 Python 读取 XML 文件,需要使用 xml.dom.minidom 模块,该模块提供了 parse() 函数来打开 XML 文件,并将其解析成一个文档对象。 以下是一个使用 Python 读取 XML 文件的示例代码: ``` #coding=utf-8 ...

    pythonxml:重温Python的XML工具l:

    - **简介**:`xmllib` 是Python中最基础的XML解析器之一,它是一个非验证性的低级解析器,主要用于简单的XML文档解析。通过继承 `xmllib.XMLParser` 类并覆盖其方法,可以实现对特定元素和实体的自定义处理逻辑。 - ...

    用Python解析XML的几种常见方法的介绍

    这篇文章主要介绍了用Python解析XML的几种常见方法,包括快速的使用ElementTree模块等方法的实例介绍,... python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合

    用Python解析XML文件的软件实现.zip

    Python作为一种强大的编程语言,提供了多种库来解析XML文件,使得处理XML数据变得简单易行。本主题将深入探讨如何使用Python来解析XML文件。 在Python中,常用的XML解析库有`xml.dom.minidom`、`ElementTree`(包括...

Global site tag (gtag.js) - Google Analytics