• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)

python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

xml.dom篇

    DOM是Document Object Model的简称,XML 文档的高级树型表示。该模型并非只针对 Python,而是一种普通XML 模型。Python 的 DOM 包是基于 SAX 构建的,并且包括在 Python 2.0 的标准 XML 支持里。

一、xml.dom的简单介绍

1、主要方法:

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]
返回Node节点的xml表示的文本:
doc = minidom.parse(filename)
doc.toxml('UTF-8')

访问元素属性:

Node.attributes["id"]
a.name #就是上面的 "id"
a.value #属性的值 

2、举例说明

例1:文件名:book.xml

    <list id='002'>
        <head>booktwo</head>
        <name>python learn</name>
        <number>002</number>
        <page>300</page>
    </list>

</info>
</div>

(1)创建DOM对象

(2)获取根字节

root=dom1.documentElement #这里得到的是根节点
print root.nodeName,',',root.nodeValue,',',root.nodeType

返回结果为:

info , None , 1

其中:

info是指根节点的名称root.nodeName
None是指根节点的值root.nodeValue

1是指根节点的类型root.nodeType,更多节点类型如下表:

NodeType

Named Constant

1

ELEMENT_NODE

2

ATTRIBUTE_NODE

3

TEXT_NODE

4

CDATA_SECTION_NODE

5

ENTITY_REFERENCE_NODE

6

ENTITY_NODE

7

PROCESSING_INSTRUCTION_NODE

8

COMMENT_NODE

9

DOCUMENT_NODE

10

DOCUMENT_TYPE_NODE

11

DOCUMENT_FRAGMENT_NODE

12

NOTATION_NODE


(3)子元素、子节点的访问

A、返回root子节点列表

运行结果为:

[<DOM Text node "u'\n   '">, <DOM Element: intro at 0x124ef58>, <DOM Text node "u'\n    '">, <DOM Element: list at 0x1254058>, <DOM Text node "u'\n\n    '">, <DOM Element: list at 0x1254418>, <DOM Text node "u'\n\n'">]

B、获取XML节点值,如返回根节点下第二个子节点intro的值和名字,添加下面一句

运行结果为:

intro None

C、访问第一个节点

运行结果为:

#text

D、获取已经知道的元素名字的值,如要获取intro后的book message可以使用下面的方法:

这种方法的不足之处是需要对类型进行判断,使用起来不是很方便。运行结果是:

Book message

二、xml解析

对上面的xml进行解析

方法1 代码如下:

import xml.dom.minidom
dom1=xml.dom.minidom.parse('book.xml')
root=dom1.documentElement
book={}
booknode=root.getElementsByTagName('list')
for booklist in booknode:
    print '='*20
    print 'id:'+booklist.getAttribute('id')
    for nodelist in  booklist.childNodes:
        if nodelist.nodeType ==1:
            print nodelist.nodeName+':',
        for node in nodelist.childNodes:
            print node.data
</div>

运行结果为:

====================
id:001
head: bookone
name: python check
number: 001
page: 200
====================
id:002
head: booktwo

您可能想查找下面的文章:

相关文章

  • 关于python的bottle框架跨域请求报错问题的处理方法
  • 你所不知道的Python奇技淫巧13招【实用】
  • python显示天气预报
  • 举例讲解Python的lambda语句声明匿名函数的用法
  • 在ironpython中利用装饰器执行SQL操作的例子
  • python读取Android permission文件
  • Python常用算法学习基础教程
  • 浅谈python中的面向对象和类的基本语法
  • Python实现控制台进度条功能
  • Python监控主机是否存活并以邮件报警

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • python实现2048小游戏
    • python使用urllib2提交http post请求的方法
    • 解决pyqt中ui编译成窗体.py中文乱码的问题
    • python处理PHP数组文本文件实例
    • Python的爬虫程序编写框架Scrapy入门学习教程
    • Python读取Excel的方法实例分析
    • windows系统中python使用rar命令压缩多个文件夹示例
    • 十个Python程序员易犯的错误
    • python通过邮件服务器端口发送邮件的方法
    • Python的Twisted框架上手前所必须了解的异步编程思想

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有