zl程序教程

您现在的位置是:首页 >  后端

当前栏目

使用python3.4解析xml文件(sax、dom、etree)详解编程语言

python3.4文件XML编程语言 使用 详解 解析 dom
2023-06-13 09:20:24 时间
 ?xml version = "1.0" encoding = "utf-8"? 

 author name = "dengjingdong" birth = "19920517" /author 

 /people 

调用dom模块中的minidom处理xml文件。

from xml.dom.minidom import * 

#scannode函数打印xml文件的结构 

def scannode(doc,level = 0): 

 ret = doc.__class__.__name__ 

 if doc.nodeType == Node.ELEMENT_NODE: 

 ret += ",标签:" + doc.tagName 

 print(" "*4*level,ret) 

 if doc.hasChildNodes: 

 for child in doc.childNodes: 

 scannode(child,level+1) 

#----scannode----- 

xin = parse("book.xml") 

print(xin) 

scannode(xin) 

#----scannode----- 

x = parse("domtest.xml") 

nx = x.getElementsByTagName("author") 

print(nx[0].getAttribute("birth")) 

print(nx[0].childNodes[0].data) 

print(nx[1].getAttribute("birth")) 

print(nx[1].childNodes[0].data)

book.xml

 ?xml version = "1.0" encoding = "utf-8" ? 

 book 

 title the book title /title 

 author 

 name jingdong /name 

 boy true /boy 

 /author 

 chapter number = "1" 

 title first chapter /title 

 para 

 I love python. 

 /para 

 /chapter 

 /book 

domtest.xml

 ?xml version = "1.0" encoding = "utf-8" ? 

 people 

 author name = "dengjingdong" birth = "1990517" dongdong /author 

 author name = "wushengnan" birth = "19920520" nannan /author 

 /people 

调用etree模块中的ElementTree生成所需的xml文件。

import xml.etree.ElementTree as et 

x = et.Element("name") 

x.text = "dengjingdong" 

x.set("boy","true") 

sx = et.tostring(x) 

print(sx) 

8391.html

cjavapythonxml