脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python解析xml文件实例分析

python解析xml文件实例分析

2020-07-08 10:28imzoer Python

这篇文章主要介绍了python解析xml文件的方法,实例分析了Python针对XML文件节点及字段的获取技巧,非常简单实用,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

延伸 · 阅读

精彩推荐