python xml childNodes,childNodes[1].childNodes[0].data例子
xml:
<?xml version='1.0' encoding='utf-8'?>
<!--this is a test about xml-->
<booklist type='scicence and enginerring'>
<book category='math'>
<title>learing math</title>
<title>learing math1</title>
<author>zhagn san</author>
<pageNumber>562</pageNumber>
</book>
<book category='python'>
<title>learing Python</title>
<author>li si</author>
<pageNumber>544</pageNumber>
</book>
</booklist>
下面代码可以看出每一层节点和内容介绍:
#coding=utf-8
from xml.dom.minidom import parse
DOMTree=parse(r"d:\\test.xml")
booklist=DOMTree.documentElement
print booklist
print "*"*30
books=booklist.getElementsByTagName('book')
print "books:",books
print "books[0].childNodes:",books[0].childNodes
print "books[0].childNodes[1]:",books[0].childNodes[1]
print "books[0].childNodes[1].childNodes:",books[0].childNodes[1].childNodes
print "books[0].childNodes[1].childNodes[0]:",books[0].childNodes[1].childNodes[0]
print "books[0].childNodes[1].childNodes[0].data:",books[0].childNodes[1].childNodes[0].data
#print "books[0].childNodes[1].childNodes[1]:",books[0].childNodes[1].childNodes[1]
解释:
#books是获取booklist对象中所有book节点的list集合
books: [<DOM Element: book at 0x28855d0>, <DOM Element: book at 0x2885990>]
#books[0].childNodes: 是第一个book节点的所有子节点,是一个列表
books[0].childNodes: [<DOM Text node "u'\n '">, <DOM Element: title at 0x28856e8>, <DOM Text node "u'\n '">, <DOM Element: title at 0x2885788>, <DOM Text node "u'\n '">, <DOM Element: author at 0x2885828>, <DOM Text node "u'\n '">, <DOM Element: pageNumber at 0x28858c8>, <DOM Text node "u'\n '">]
#books[0].childNodes[1]: 是第一个book节点的第二个子节点,是一个title标签元素-:<title>learing math1</title>,包含了标签和标签的子节点:文本节点
books[0].childNodes[1]: <DOM Element: title at 0x28856e8>
#books[0].childNodes[1].childNodes: 是第一个book节点的第二个子节点(title标签元素)的子节点(文本节点),是个列表
books[0].childNodes[1].childNodes: [<DOM Text node "u'learing ma'...">]
#books[0].childNodes[1].childNodes[0]: 是第一个book节点的第二个子节点(title标签元素)的子节点(文本节点-list)的第一个元素
books[0].childNodes[1].childNodes[0]: <DOM Text node "u'learing ma'...">
#books[0].childNodes[1].childNodes[0].data:是第一个book节点的第二个子节点(title标签元素)的子节点(文本节点-list)的第一个元素的值
books[0].childNodes[1].childNodes[0].data: learing math
#books[0].childNodes[1].childNodes[1]: 试图是拿到第一个book节点的第二个子节点(title标签元素)的子节点(文本节点-list)的第二个元素,但是报错了,可知该列表中只有一个元素
books[0].childNodes[1].childNodes[1]:
Traceback (most recent call last):
File "task_test.py", line 17, in <module>
print "books[0].childNodes[1].childNodes[1]:",books[0].childNodes[1].childNodes[1]
IndexError: list index out of range
由此而知,
凡是.以childNodes 结尾的,结果就是列表
凡是.以childNodes[i] 结尾的,结果就是一个节点元素
c:\Python27\Scripts>python task_test.py
<DOM Element: booklist at 0x28854b8>
******************************
books: [<DOM Element: book at 0x28855d0>, <DOM Element: book at 0x2885990>]
books[0].childNodes: [<DOM Text node "u'\n '">, <DOM Element: title at 0x28856e8>, <DOM Text node "u'\n '">, <DOM Element: title at 0x2885788>, <DOM Text node "u'\n '">, <DOM Element: author at 0x2885828>, <DOM Text node "u'\n '">, <DOM Element: pageNumber at 0x28858c8>, <DOM Text node "u'\n '">]
books[0].childNodes[1]: <DOM Element: title at 0x28856e8>
books[0].childNodes[1].childNodes: [<DOM Text node "u'learing ma'...">]
books[0].childNodes[1].childNodes[0]: <DOM Text node "u'learing ma'...">
books[0].childNodes[1].childNodes[0].data: learing math
books[0].childNodes[1].childNodes[1]:
Traceback (most recent call last):
File "task_test.py", line 17, in <module>
print "books[0].childNodes[1].childNodes[1]:",books[0].childNodes[1].childNodes[1]
IndexError: list index out of range
python xml childNodes,childNodes[1].childNodes[0].data例子的更多相关文章
- Python XML解析(转载)
Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...
- Python XML解析之DOM
DOM说明: DOM:Document Object Model API DOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问. https://docs. ...
- python大法好——Python XML解析
Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...
- python xml练习:从database.xml文件取databaselist的ip、name、passwd,写入列表
xml: <?xml version='1.1' encoding='utf-8'?><!--this is a test about xml--><databaseli ...
- Python XML解析
什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这 ...
- python xml包使用记录
<?xml version="1.0" encoding="utf-8" ?> <request> <functionID> ...
- python xml.etree.ElementTree解析xml文件获取节点
<?xml version = "1.0" encoding = "utf-8"?> <root> <body name=&quo ...
- python xml文件解析 及生成xml文件
#解析一个database的xml文件 """ <databaselist type="database config"> <dat ...
- Python xml处理模块
---恢复内容开始--- xml 通过< >节点来区别数据结构 ---恢复内容结束--- xml 通过< >节点来区别数据结构 <xml version='1.0'> ...
随机推荐
- Xcode - Debug汇编模式切换调试
一.概念 1.汇编指令: 模拟器上运行的是Intel指令,而真机上运行的是arm指令, 2.每条汇编指令的格式总是由: 操作码, 操作数1,操作数2,操作数3组成. 操作数要么就是常数,要么就是寄存储 ...
- iOS8新特性(2)——UIPopoverController和UIPresentationController
一.以往使用 UIPopoverController 都是只在iPad上使用 /** * UIPopoverController 只能用于iPad,上,iPhone上使用会崩溃 */ -(void)o ...
- 地址转换函数:inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
在Unix网络编程中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33")与网络字节序的二进制值(这个值保存在套接口地址结构中)间进行地址的转换. 1. ...
- 使用find命令按条件查找多个文件并且拷贝至指定目录
命令格式如下 find / \( -name "*.war" -o -name "*.jar" \) | xargs -i cp {} ${wardir} 当需 ...
- java 中常见的一些错误
1.NosuchMethodError java 类中找不到该方法! 可能该类所在的同一个包下有一个相同的相同的类,然后那个类中没有我们所要调用的类. 解决方法:若那个类不需要,可以删除class! ...
- CSU 1809 - Parenthesis - [前缀和+维护区间最小值][线段树/RMQ]
题目链接:http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1809 Bobo has a balanced parenthesis sequenc ...
- 使用Homebrew在Mac OS X EI Capitan上安装与配置nginx和PHP
安装nginx brew install nginx sudo nginx 测试安装 在浏览器打开下面的链接地址 http://localhost:8080 nginx.conf配置 # HTTPS ...
- Java学习之路-Burlap学习
今天我们来学一下Burlap. Burlap是一种基于XML远程调用技术,但与其他基于XML的远程技术(例如SOAP或者XML-RPC)不同,Burlap的消息结构尽可能的简单,不需要额外的外部定义语 ...
- xpath教程 2 - lxml库
xpath教程 2 - lxml库 这些就是XPath的语法内容,在运用到Python抓取时要先转换为xml. lxml库 lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HT ...
- 如何删除帝国cms面包屑导航中首页链接的/index.html
前面一篇"帝国cms面包屑导航的首页链接锚文本改成关键字"中xmyanke有写到改首页链接的方法,但是感觉比较麻烦,这里就说说如何删除帝国cms面包屑导航中首页链接的/index. ...