第一部分:读
########
##
# -*- 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. 20145317彭垚 《Java程序设计》第一次实验实验报告

    20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...

  2. 拼写纠正 Artificial Intelligence: A Modern Approach

    Artificial Intelligence: A Modern Approach http://mindhacks.cn/2008/09/21/the-magical-bayesian-metho ...

  3. OpenMP for Fortran

    OpenMP for Fortran OpenMP Directive Syntax of OpenMP compiler directive for Fortran: !$OMP Directive ...

  4. In App Purchase

    参考文章1,参考文章2,参考文章3, 参考文章3 一.Product 分类:      Consumables: 应该在应用里被消费掉的.(Coupon, 生命数)      Non-Consumab ...

  5. JMX初体验

    这些天在看<How Tomcat Works>这本书.里面讲到了JMX的内容.对我来说是个新知识点. JMX--Java Management Extensions,即Java管理扩展,是 ...

  6. FastMM、FastCode、FastMove的使用(图文并茂)

    FastMM是一个替换Embarcadero Delphi Win32应用程序的快速内存管理器,以及可以在多线程下使用,不容易产生内存碎片,并且无需使用外部DLL文件就可以支持共享内存. 使用方法:1 ...

  7. Linux: 20 Iptables Examples For New SysAdmins

    Linux comes with a host based firewall called Netfilter. According to the official project site: net ...

  8. H264关于RTP协议的实现

    完整的C/S架构的基于RTP/RTCP的H.264视频传输方案.此方案中,在服务器端和客户端分别进行了功能模块设计. 服务器端:RTP封装模块主要是对H.264码流进行打包封装:RTCP分析模块负责产 ...

  9. Barricade---hdu5889(最短路+网络流)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5889 题意:有n个点m条边,每条边的长度相同,我们可以默认为1,构成一个无向图:现在起点为1,终点为n ...

  10. SQL学习笔记 SQL ORDER BY 关键字

    SELECT column_name,column_nameFROM table_nameORDER BY column_name,column_name ASC|DESC; SELECT id, n ...