用ElementTree 解析和生成 XML

原创 2007年09月28日 11:13:00
from elementtree import ElementTree
from elementtree.ElementTree import Element

##解析方案一: 解析XML字符串,入参是字符串
fp = open('test.xml', 'r')
content = fp.read()
fp.close()

content = content.decode('gb2312').encode('UTF-8')
content = content.replace('encoding="gb2312"', 'encoding="UTF-8"')
print content

root = ElementTree.fromstring(content)

##解析方案二: 解析一个XML文件,入参是文件名
import elementtree.ElementTree as ET
root = ET.Element("html")

##获取节点
##获取同名节点列表
root.findall('NodeName') ##这是第一层节点
root.findall('/NodeName/SubNode') ##也可以写路径来获取底下几层的节点
##也可以这么获取多层的节点
ElementTree.Element = root.findall('NodeName')
ElementTree.Element[0].findall('SubNode')
##获取后的节点可以用个iter来保存,也可以直接就用 ElementTree.Element来获取


##获取单个节点,如果有同名的返回第一个节点
root.find('NodeName') ##这是第一层节点
root.find('/NodeName/SubNode') ##也可以写路径来获取底下几层的节点
##也可以这么获取多层的节点
ElementTree.Element = root.find('NodeName')
ElementTree.Element.find('SubNode')


##获得和修改属性
##根节点
print root.get("Name")
root.set("Name", "aaaa")##修改根节点中名为Name的属性值为"aaaa"
print root.get("Name")

##子节点
ElementTree.Element = root.findall('node')
print ElementTree.Element[2].get("name")
ElementTree.Element[2].set("name","kkk")
print ElementTree.Element[2].get("name")


##写XML
##将root存储为XML字符串,这是写XML的方法之一,前提是得先由一个XML解析出root
print ElementTree.tostring(root, encoding='gb2312')

##写XML方法之二,构造XML,从空白开始
from elementtree.SimpleXMLWriter import XMLWriter
import sys
##XMLWriter(file,encoding='')参数是:文件名,文件编码类型
w = XMLWriter("TEST.XML",, encoding='gb2312')
w.declaration(encoding='gb2312') ##添加XML头,即<?xml version="1.0" encoding="gb2312"?>
xmlstr = w.start("html") ##这边的变量不能定义为 xml
w.start("head") ##根节点 <head>
w.element("title", "my document")
w.element("meta", name="generator", value="my application 1.0") ##这是个有属性的节点,生成之后为<meta name=name="generator" value="my application 1.0">
w.end() ##一段节点的结束,下一个w.start()追加的是和本次w.start()同级的节点
w.start("body")
w.element("h1", "this is a heading")
w.element("p", "this is a paragraph")
w.start("p")
w.data("this is ")
w.element("b", "bold")
w.data(" and ")
w.element("i", "italic")
w.data(".")
w.end("p")
w.close(xmlstr)

##以上是将生成的XML写到文件中,如果是想写到一个字符串中则需要使用以下代码
from cStringIO import StringIO
out = StringIO()
w = XMLWriter(out, encoding='gb2312')
##……中间相同
w.close(xmlstr)
ss = out.getvalue() ##用这句来获得整个XML字符串
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Python_使用ElementTree解析xml文件

一般使用ElementTree之前,我都会执行: from xml.etree import ElementTree as ET 下面是个例子: try: tree = ET...

使用 Python ElementTree 生成 xml

Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree。 首先 import 之: 1 from...

python创建xml文件

本文是一个使用ElementTree有关类库,生成xml文件的例子 # *-* coding=utf-8 from xml.etree.ElementTree import ElementTree ...

python构建XML树结构

#1.构建XML元素 #encoding=utf-8 from xml.etree import ElementTree as ET import sys root=ET.Element('co...

用ElementTree解析和生成XML

from elementtree import ElementTree from elementtree.ElementTree import Element ##解析方案一: 解析XML字符...

Python中使用ElementTree解析XML文件

XML文件介绍 Python中使用ElementTree对XML文件进行解析

Python 使用ElementTree解析XML

以下内容转自 http://www.cnblogs.com/CheeseZH/p/4026686.html Element类型是一种灵活的容器对象,用于在内存中存储层次数据结构。可以说是li...

用 ElementTree 在 Python 中解析 XML

原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python-with-elementtree/ 译者: TheLov...

用 ElementTree 在 Python 中解析 XML

原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python-with-elementtree/ 译者: TheLov...

使用Python库ElementTree解析XML文件

最近打算做一个比较两个XML文件的小工具,然后就找到了Python的ElementTree,这个库非常高效,API也非常简洁。Python也有很多其他库可以用来解析XML文件。但是这个库没法正确处理X...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)