# -*- coding:utf-8 -*-
"""
* User: lhj588
* Date: 11-11-9
* Time: 13:20
* Desc:
""" from xml.dom
import minidom
def get_attrvalue(node, attrname):
return node.getAttribute(attrname)
if node
else ''def get_nodevalue(node, index = 0):
return node.childNodes[index].nodeValue
if node
else ''def get_xmlnode(node,name):
return node.getElementsByTagName(name)
if node
else []
def xml_to_string(filename=
'user.xml'):
doc = minidom.parse(filename)
return doc.toxml(
'UTF-8')
def get_xml_data(filename=
'user.xml'):
doc = minidom.parse(filename)
root = doc.documentElement
user_nodes = get_xmlnode(root,
'user')
user_list=[]
for node
in user_nodes:
user_id = get_attrvalue(node,
'id')
node_name = get_xmlnode(node,
'username')
node_email = get_xmlnode(node,
'email')
node_age = get_xmlnode(node,
'age')
node_*** = get_xmlnode(node,
'***')
user_name =get_nodevalue(node_name[0]).encode(
'utf-8',
'ignore')
user_email = get_nodevalue(node_email[0]).encode(
'utf-8',
'ignore')
user_age = int(get_nodevalue(node_age[0]))
user_*** = get_nodevalue(node_***[0]).encode(
'utf-8',
'ignore')
user = {}
user[
'id'] , user[
'username'] , user[
'email'] , user[
'age'] , user[
'***'] = (
int(user_id), user_name , user_email , user_age , user_***
)
user_list.append(user)
return user_list
def test_xmltostring():
print xml_to_string()
def test_laod_xml():
user_list = get_xml_data()
for user
in user_list :
#print user['***']
print '-----------------------------------------------------' if user:
user_str=
'编 号:%d\n用户名:%s\n性 别:%s\n年 龄:%s\n邮 箱:%s\n ' % (int(user[
'id']) , user[
'username'], user[
'***'] , user[
'age'] , user[
'email'])
print user_str
print '====================================================='if __name__ ==
"__main__":
test_xmltostring()
test_laod_xml()
-----------------------------------------------------
编 号:1000001
用户名:Admin
性 别:男
年 龄:23
邮 箱:admin@live.cn
=====================================================
-----------------------------------------------------
编 号:1000002
用户名:Admin2
性 别:男
年 龄:22
邮 箱:admin2@live.cn
=====================================================
-----------------------------------------------------
编 号:1000003
用户名:Admin3
性 别:男
年 龄:27
邮 箱:admin3@live.cn
=====================================================
-----------------------------------------------------
编 号:1000004
用户名:Admin4
性 别:女
年 龄:25
邮 箱:admin4@live.cn
=====================================================
-----------------------------------------------------
编 号:1000005
用户名:Admin5
性 别:男
年 龄:20
邮 箱:admin5@live.cn
=====================================================
-----------------------------------------------------
编 号:1000006
用户名:Admin6
性 别:女
年 龄:23
邮 箱:admin6@live.cn
=====================================================