易截截图软件、单文件、免安装、纯绿色、仅160KB

在python中处理XML总结

本文总结了在Python中主要的几种处理XML的方法:
Element Tree
SAX
Dom
使用第三方类库如Amara 2.x, libxml2dom 等
Element Tree
Element Tree是Python 2.5引入的使用简单,快捷的处理方法, 也是Python标准类库推荐的处理XML的方法。
它使用树形节点的形式来读写XML。Element Tree是轻量级的DOM, 所以使用方便且耗资源少。
比如有以下XML文件: sample.xml
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="001">
<name>John</name>
<age>25</age>
<phone>12345</phone>
</user>
<user id="002">
<name>Bill</name>
<age>30</age>
<phone>54321</phone>
</user>
<user id="003">
<name>Rex</name>
<age>35</age>
<phone>88888</phone>
</user>
</users> 
实例代码如下:
# -*- coding: utf-8 -*-
import sys
from xml.etree import ElementTree as ET
# 打印user节点,格式为tag:text
def printUser(user):
print "\nid:\t%s" % user.attrib.get('id')
for e in user.getchildren():
print "%s:\t%s" % (e.tag, e.text)
if __name__ == '__main__':
xmlFile = 'sample.xml'

# 解析sample.xml
doc = ET.parse(xmlFile)
users = doc.getroot()

# 遍历所有user,打印id和name
for user in users.findall('user'):
print "ID: %s\tName: %s" % (user.attrib['id'], user.find('name').text)

# 找出id是001的user
user1 = None
for user in users.getiterator('user'):
if user.attrib.get('id') == '001':
user1 = user

# 将user的phone改为999, 再打印这个user节点
if user1 != None:
printUser(user1)
user1.find('phone').text = '9999'
print ET.tostring(user1, 'utf-8')

# 删除name为Rex的user
for user in users.getiterator('user'):
if user.find('name').text == 'Rex':
use


相关文档:

xml post(C#)

xmlpost by HttpWebRequest:
protected string PostXmlToURL(string url,string data)
{
    HttpWebRequest hwr = (HttpWebRequest)HttpWebRequest.Create(url);
    hwr.Method = "POST";
    Stream stream = hwr.GetRequestStream();
    StreamWri ......

XStream 非常简单实用的XML读写工具(一)

最近工作内容需要对Java对象做XML输出,公司里常用的两种框架是XStream和XML Beans。两种都我都用了,对于普通的,schema不是很复杂的XML文件来说选择XStream更方便。这篇文章先介绍一下XStream的用法,XML Beans的用法另外再介绍。
1. 先给个要输出的xml文档的例子:
<students>
<student>
&l ......

python 命令行参数


本篇将介绍python中sys, getopt模块处理命令行参数
如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢?
需要模块:sys
参数个数:len(sys.argv)
脚本名:    sys.argv[0]
参数1:     sys.argv[1]
参数2:     sys.argv[2]
test.py
1
import ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号