第一部分:读
########
##
# -*- coding:utf-8 -*-
"""
* User: not me
* Date: 11-11-9
* Time: 13:20
* Desc: not easy for newer like me
""" 
 
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_r(name) if node else []
 
def xml_to_string(filename='example.xml'):
    doc = minidom.parse(filename)
    return doc.toxml('UTF-8')
 
def get_xml_data(filename='example.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_sex = get_xmlnode(node,'sex')
 
        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_sex = get_nodevalue(node_sex[0]).encode('utf-8','ignore') 
        user = {}
        user['id'] , user['username'] , user['email'] , user['age'] , user['sex'] = (
            int(user_id), user_name , user_email , user_age , user_sex
        )
        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['sex']
        print '-----------------------------------------------------'
        if user:
            user_str='编   号:%d\n用户名:%s\n性   别:%s\n年   龄:%s\n邮   箱:%s\n ' % (int(user['id']) , user['username'], user['sex'] , user['age'] , user['email'])
            print user_str
            print '====================================================='
 
if __name__ == "__main__":
    test_xmltostring()
    test_laod_xml()
##code end
############
doc=minidom.parse('example.xml')
root=doc.documentElement
root.getElementsByTagName_r('user')[0].getAttribute('id')
obtain the id attribute
<user id="1000001">
root.getElementsByTagName_r('user')[0].getElementsByTagName_r('username')[0].chileNodes[0].nodeValue
get nodevalue not attribute
<username>Admin</username>
creatDocument()方法可以创建一个指定类型的XML文档对象
##note section
##############
<?xml version="1.0" encoding="UTF-8" ?>
<users>
    <user id="1000001">
        <username>Admin</username>
        <email>admin@live.cn</email>
        <age>23</age>
        <sex>男</sex>
    </user>
</users>
##exampl.xml
###############
第二部分:写
from xml.dom import minidom, Node 
doc = minidom.Document() 
doc.a(doc.createComment("Simple xml document__chapter 8")) 
#generate the book 
#<book> (root node)
book = doc.createElement_x_x('book') 
doc.a(book) 
#the title 
#<title> 
#      sample xml thing 
#</title> 
title = doc.createElement_x_x('title') 
title.a(doc.createTextNode("sample xml thing")) 
book.a(title) #在title在book下
任何级别的元素都有doc.creatElement('string')产生,但由自己的上级node执行
 
#the author section 
<book> 
    <title> 
        sample xml thing 
    </title> 
    <author> 
        <name> 
            <first> 
                ma 
            </first> 
            <last> 
                xiaoju 
            </last> 
        </name> 
author = doc.createElement_x("author") 
book.a(author) 
name = doc.createElement_x('name') 
author.a(name) 
firstname = doc.createElement_x('first') 
firstname.a(doc.createTextNode("ma")) 
name.a(firstname) 
lastname = doc.createElement_x('last') 
name.a(lastname) 
lastname.a(doc.createTextNode("xiaoju")) 

Python xml的更多相关文章

  1. Python XML解析(转载)

    Python XML解析 什么是XML? XML 指可扩展标记语言(eXtensible Markup Language). 你可以通过本站学习XML教程 XML 被设计用来传输和存储数据. XML是 ...

  2. Python xml 模块

    Python xml 模块 TOC 什么是xml? xml和json的区别 xml现今的应用 xml的解析方式 xml.etree.ElementTree SAX(xml.parsers.expat) ...

  3. Python XML解析之ElementTree

    参考网址: http://www.runoob.com/python/python-xml.html https://docs.python.org/2/library/xml.etree.eleme ...

  4. python大法好——Python XML解析

    Python XML解析 什么是XML? XML 被设计用来传输和存储数据. XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识. 它也是元标记语言,即定义了用于定义其他与 ...

  5. 【Python】Python XML 读写

    class ACTIVE_FILE_PROTECT_RULE_VIEW(APIView): renderer_classes = (JSONRenderer, BrowsableAPIRenderer ...

  6. python xml.etree ElementTree解析 编辑 xml

    python有很多种xml解析方式,不过感觉etree的ElementTree 用起来最方便. #coding=utf-8 from xml.etree import ElementTree impo ...

  7. python - XML文件及其操作

    xml文件也是实现不同语言或者程序之间进行数据交换的协议,它的特点是尖括号开头,尖括号结尾.使用范围就更为广泛了,tomcat resin kvm 等等,使用了大量的xml文件来进行相关配置.先来看一 ...

  8. Python: xml转json

    1,引言 GooSeeker早在9年前就开始了Semantic Web领域的产品化,MS谋数台和DS打数机是其中两个产品.对web内容做结构化转换和语义处理的主要路线是 XML -> RDF - ...

  9. 【转】python XML 操作总结(创建、保存和删除,支持utf-8和gb2312)

    原文地址:http://hi.baidu.com/tbjmnvbagkfgike/item/6743ab10af43bb24f6625cc5 最近写程序需要用到xml操作,看了看python.org上 ...

  10. python xml.dom模块解析xml

    1. 什么是xml?有何特征? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 例子:del.xml <?xml version=&q ...

随机推荐

  1. WampServer 在 httpd.conf 中配置多站点 (IP 配置法:不用每次修改 hosts 文件 + 域名配置法 )

    因为要用 ThinkPHP 的当前最新版本 3.2.2,对应要求 PHP 的版本要高于 5.3.0,所以安装了 WampServer 2.2 ( Apache 2.2.21,PHP 5.3.10,My ...

  2. sql in查询排序

    1.默认下,使用select xxx where in(xx,xx)查询,返回结果是按主键排序的,如果要按in()中值的排列顺序,可以这样做:   select * from talbe where ...

  3. [收藏] 关于解决“进程com.android.phone意外停止”的方法 (未尝试)

    很多机油反应有这个情况,本人费劲九牛20虎之力终于克服之,这个现象一般出现在刚刷完系统会出现,甚至你怎么刷ROM这个现象依旧存在(崩溃不?)~~~有位机油刷了这个系统也出现了http://samsun ...

  4. 不遗留问题-menu数据拼装-2

    $res = array(); foreach($idlist_1 as $id1) { $tmp = array(); $tmp1 = array(); $tmp1[] = $id1; foreac ...

  5. PHP5 mysqli 教程

    mysqli提供了面向对象和面向过程两种方式来与数据库交互,分别看一下这两种方式. 1.面向对象 在面向对象的方式中,mysqli被封装成一个类,它的构造方法如下: __construct ([ st ...

  6. svn截图

        一.合并一个范围的版本 此类型应用最为广泛,主要是把分支中的修改合并到主干上来.在主干上点击右键选择合并,然后选择合并类型:合并一个范围的版本.合并的源URL填写的是要合并的分支的URL,待合 ...

  7. taocode

    http://code.taobao.org/project/lang/list/Go/1/

  8. Python之if语句

    计算机之所以能做很多自动化的任务,因为它可以自己做条件判断. 比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,可以用if语句实现: age = 20 if age >= 18: ...

  9. phpcms list页实现分页

    {pc:content action="lists" catid="41" order="id ASC" num="1" ...

  10. Android源码剖析之Framework层基础版(窗口、linux、token、Binder)

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 关于Framework,就是应用层底下的控制层,离应用层最近,总想找个机会,写写WindowMang ...