本文实例讲述了python解析xml文件的方法。分享给大家供大家参考。具体如下:
python解析xml非常方便。在dive into python中也有讲解。
如果xml的结构如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<? xml version = "1.0" encoding = "utf-8" ?>
< books >
< book >
< author >zoer</ author >
< title >think in java</ title >
< content >this is a good book</ content >
</ book >
< book >
< author >naughty</ author >
< title >gone with the wind</ title >
< content >this is a good book 2</ content >
</ book >
< book >
< author >cc</ author >
< content >this is a good book 3</ content >
</ book >
</ books >
|
第三个book是没有title标记的。由于不要相信代码输入,所以在代码中要做检查(比如说检查这里的有没有子标签)。
解析代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#coding=utf-8
#parse all books
#author: naughty610
#date: 2012-8-16
import xml.dom.minidom
dom = xml.dom.minidom.parse( 'C:/Users/naughty/Desktop/books.xml' )
root = dom.documentElement
#获取每一个下一层节点
for node in root.childNodes:
#这样取得的是root节点以下一层的节点,而不是root节点以下所有节点
#取所有非text节点
if node.nodeType = = node.ELEMENT_NODE:
#取author字段
author = node.getElementsByTagName( "author" )
if len (author)> = 1 :
print author[ 0 ].childNodes[ 0 ].data
#取title字段
title = node.getElementsByTagName( "title" )
if len (title)> = 1 :
print title[ 0 ].childNodes[ 0 ].data
#取content字段
content = node.getElementsByTagName( "content" )
if len (content)> = 1 :
print content[ 0 ].childNodes[ 0 ].data
print "........................parting line........................"
|
希望本文所述对大家的Python程序设计有所帮助。