python写入xml

1.如何用Python创建生成xml文档文件的方法

1、内存数据产生

2、产生xml内存对象(也就是DOM树)

3、产生根对象

4、往根对象里加数据

5、把xml内存对象写到文件

下面是一个创建xml文档的简单实例:

import xml.dom.minidom#在内存中创建一个空的文档doc = xml.dom.minidom.Document()

#创建一个根节点Managers对象root = doc.createElement('Managers')

#设置根节点的属性root.setAttribute('company', 'xx科技')

root.setAttribute('address', '科技软件园')

#将根节点添加到文档对象中doc.appendChild(root)

managerList = [{'name' : 'joy', 'age' : 27, 'sex' : '女'},

{'name' : 'tom', 'age' : 30, 'sex' : '男'},

{'name' : 'ruby', 'age' : 29, 'sex' : '女'}

]for i in managerList :

nodeManager = doc.createElement('Manager')

nodeName = doc.createElement('name')

#给叶子节点name设置一个文本节点,用于显示文本内容

nodeName.appendChild(doc.createTextNode(str(i['name'])))

nodeAge = doc.createElement("age")

nodeAge.appendChild(doc.createTextNode(str(i["age"])))

nodeSex = doc.createElement("sex")

nodeSex.appendChild(doc.createTextNode(str(i["sex"])))

#将各叶子节点添加到父节点Manager中,

#最后将Manager添加到根节点Managers中

nodeManager.appendChild(nodeName)

nodeManager.appendChild(nodeAge)

nodeManager.appendChild(nodeSex)

root.appendChild(nodeManager)#开始写xml文档fp = open('c:\\wcx\\Manager.xml', 'w')

doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")执行结果:

<?xml version="1.0" encoding="utf-8"?>

<Managers address="科技软件园" company="xx科技">

<Manager>

<name>joy</name>

<age>27</age>

<sex>;女</sex>

</Manager>

<Manager>

<name>tom</name>

<age>30</age>

<sex>;男</sex>

</Manager>

<Manager>

<name>ruby</name>

<age>29</age>

<sex>;女</sex>

</Manager>

</Managers>6.用Python自带的写xml文档的API去写,比较方便,后期容易维护。如果直接用打开文件的方式,一行一行的去写,比较费时,也难以维护。

2.如何用Python创建生成xml文档文件的方法

1、内存数据产生 2、产生xml内存对象(也就是DOM树) 3、产生根对象 4、往根对象里加数据 5、把xml内存对象写到文件下面是一个创建xml文档的简单实例:import xml.dom.minidom#在内存中创建一个空的文档doc = xml.dom.minidom.Document() #创建一个根节点Managers对象root = doc.createElement('Managers') #设置根节点的属性root.setAttribute('company', 'xx科技') root.setAttribute('address', '科技软件园') #将根节点添加到文档对象中doc.appendChild(root) managerList = [{'name' : 'joy', 'age' : 27, 'sex' : '女'}, {'name' : 'tom', 'age' : 30, 'sex' : '男'}, {'name' : 'ruby', 'age' : 29, 'sex' : '女'}]for i in managerList : nodeManager = doc.createElement('Manager') nodeName = doc.createElement('name') #给叶子节点name设置一个文本节点,用于显示文本内容 nodeName.appendChild(doc.createTextNode(str(i['name']))) nodeAge = doc.createElement("age") nodeAge.appendChild(doc.createTextNode(str(i["age"]))) nodeSex = doc.createElement("sex") nodeSex.appendChild(doc.createTextNode(str(i["sex"]))) #将各叶子节点添加到父节点Manager中, #最后将Manager添加到根节点Managers中 nodeManager.appendChild(nodeName) nodeManager.appendChild(nodeAge) nodeManager.appendChild(nodeSex) root.appendChild(nodeManager)#开始写xml文档fp = open('c:\\wcx\\Manager.xml', 'w')doc.writexml(fp, indent='\t', addindent='\t', newl='\n', encoding="utf-8")执行结果:<?xml version="1.0" encoding="utf-8"?> joy 27 tom 30 ruby 29 6.用Python自带的写xml文档的API去写,比较方便,后期容易维护。

如果直接用打开文件的方式,一行一行的去写,比较费时,也难以维护。

3.如何用python读取xml文件

一、简介XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用。

它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性。python解析XML常见的有三种方法:一是xml.dom.*模块,它是W3C DOM API的实现,若需要处理DOM API则该模块很适合,注意xml.dom包里面有许多模块,须区分它们间的不同;二是xml.sax.*模块,它是SAX API的实现,这个模块牺牲了便捷性来换取速度和内存占用,SAX是一个基于事件的API,这就意味着它可以“在空中”处理庞大数量的的文档,不用完全加载进内存;三是xml.etree.ElementTree模块(简称 ET),它提供了轻量级的Python式的API,相对于DOM来说ET 快了很多,而且有很多令人愉悦的API可以使用,相对于SAX来说ET的ET.iterparse也提供了 “在空中” 的处理方式,没有必要加载整个文档到内存,ET的性能的平均值和SAX差不多,但是API的效率更高一点而且使用起来很方便。

二、详解解析的xml文件(country.xml):在CODE上查看代码片派生到我的代码片<?xml version="1.0"?>420115990068201113600 1、xml.etree.生来就是为了处理XML,它在Python标准库中有两种实现:一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。注意:尽量使用C语言实现的那种,因为它速度更快,而且消耗的内存更少。

在CODE上查看代码片派生到我的代码片try:import xml.etree.cElementTree as ETexcept ImportError:import xml.etree.ElementTree as ET 这是一个让Python不同的库使用相同API的一个比较常用的办法,而从Python 3.3开始ElementTree模块会自动寻找可用的C库来加快速度,所以只需要import xml.etree.ElementTree就可以了。在CODE上查看代码片派生到我的代码片#!/usr/bin/evn python#coding:utf-8try:import xml.etree.cElementTree as ETexcept ImportError:import xml.etree.ElementTree as ETimport systry:tree = ET.parse("country.xml") #打开xml文档#root = ET.fromstring(country_string) #从字符串传递xmlroot = tree.getroot() #获得root节点except Exception, e:print "Error:cannot parse file:country.xml."sys.exit(1)print root.tag, "---", root.attribfor child in root:print child.tag, "---", child.attribprint "*"*10print root[0][1].text #通过下标访问print root[0].tag, root[0].textprint "*"*10for country in root.findall('country'): #找到root节点下的所有country节点rank = country.find('rank').text #子节点下节点rank的值name = country.get('name') #子节点下属性name的值print name, rank#修改xml文件for country in root.findall('country'):rank = int(country.find('rank').text)if rank > 50:root.remove(country)tree.write('output.xml') 运行结果:2、xml.dom.*文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。

一个 DOM 的解析器在解析一个XML文档时,一次性读取整个文档,把文档中所有元素保存在内存中的一个树结构里,之后你可以利用DOM 提供的不同的函数来读取或修改文档的内容和结构,也可以把修改过的内容写入xml文件。python中用xml.dom.minidom来解析xml文件,例子如下:在CODE上查看代码片派生到我的代码片#!/usr/bin/python#coding=utf-8from xml.dom.minidom import parseimport xml.dom.minidom# 使用minidom解析器打开XML文档DOMTree = xml.dom.minidom.parse("country.xml")Data = DOMTree.documentElementif Data.hasAttribute("name"):print "name element : %s" % Data.getAttribute("name")# 在集合中获取所有国家Countrys = Data.getElementsByTagName("country")# 打印每个国家的详细信息for Country in Countrys:print "*****Country*****"if Country.hasAttribute("name"):print "name: %s" % Country.getAttribute("name")rank = Country.getElementsByTagName('rank')[0]print "rank: %s" % rank.childNodes[0].datayear = Country.getElementsByTagName('year')[0]print "year: %s" % year.childNodes[0].datagdppc = Country.getElementsByTagName('gdppc')[0]print "gdppc: %s" % gdppc.childNodes[0].datafor neighbor in Country.getElementsByTagName("neighbor"):print neighbor.tagName, ":", neighbor.getAttribute("name"), neighbor.getAttribute("direction") 运行结果:3、xml.sax.*SAX是一种基于事件驱动的API,利用SAX解析XML牵涉到两个部分:解析。

4.如何使用python生成xml

最近要用python生成一个xml格式的文件。因为有一些内容是中文,原来的xml文件中使用了CDATA 的部分。 而之前的python程序所用的库中没有 创建这个区域的方法。无奈研究了大半天。 最后用了 from lxml import etree 这个库的方法。 这里将可运行的 python程序分享出来。 供大家参考。 经过测试,这段代码是可以直接运行生成xml格式内容的。

1 # -*- coding:utf-8 -*-

2 import sys

3 import time

4 import string

5

6 from lxml import etree

7

8

9 #设置默认字符集为UTF8 不然有些时候转码会出问题

10 default_encoding = 'utf-8'

11 if sys.getdefaultencoding() != default_encoding:

12 reload(sys)

13 sys.setdefaultencoding(default_encoding)

14

15 def create_xml():

16

17 data = etree.Element("data")

18 #1 interface_version

19 interface_version_txt = '5'

20 interface_version = etree.SubElement(data, 'interface_version')

21 interface_version.text = interface_version_txt

22 #2 site

23 site_txt = ''

24 site = etree.SubElement(data, 'site')

25 site.text = site_txt

26 #3 lastmod

27 lastmod_txt = time.strftime('%Y-%m-%d', time.localtime())

28 lastmod = etree.SubElement(data, 'lastmod')

29 lastmod.text = lastmod_txt

30 #5 app

31 app = etree.SubElement(data, 'app')

32 #6 title

33 title_txt = u'%s' % '真心话大冒险'

34 title_txt = etree.CDATA(title_txt)

35 title = etree.SubElement(app, 'title')

36 title.text = title_txt

37 #7 appid

38 appid = etree.SubElement(app, 'appid')

39 appid.text = '%s' % '222'

40

41 dataxml = etree.tostring(data, pretty_print=True, encoding="UTF-8", method="xml", xml_declaration=True, standalone=None)

42 print dataxml

43

44

47 if __name__ == '__main__':

48 create_xml()

5.用python读取xml<>之间的内容并修改

python是有相关的解析html格式的模块的

可以识别出标签,简单的处理文件你可以用Beautiful Soup模块,想做大一些的爬虫可以使用scrapy框架的xpath语法来锁定标签。

这里引用下官方说明:

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。

Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。

Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

因此可以很方便地提取出HTML或XML标签中的内容

给你个样例:

from bs4 import BeautifulSoup

import urllib2

html = urllib2.urlopen(url).read() #这里是直接爬取一个网址了,html变量也可以是一个本地的文件

content = BeautifulSoup(html).findAll('a') #使用这句就可以提取出文件中所有的<a></a>;中的内容

"""模块还支持很多路径索引修改相关的功能,总之功能是比较强大的"""

希望我的回答可以帮到你:-)

6.python如何向页面传xml格式的数据

要先说明后台的web框架是什么,

如果是简单的cgi:

print "Content-Type: text/xml"

print "xml字符串"就可以了。

使用Django作为web框架:

from django.http import HttpResponse

def 请求时调用的方法(request):

xml = "xml字符串"

return HttpResponse(xml)

7.python怎么将dict转化为xml

python怎么将dict转化为xml 1、在一对多、多对一的关系中,使用延迟加载机制,会使不少的对象在使用时方会初始化,这样可使得节省内存空间以及减少数据库的负荷,而且若PO中的集合没有被使用时,就可减少互数据库的交互从而减少处理时间。

2、对含有关联的PO(持久化对象)时,若default-cascade="all"或者“save-update”,新增PO时,请注意对PO中的集合的赋值操作,因为有可能使得多执行一次update操作。 3、对于大数据量新增、修改、删除操作或者是对大数据量的查询,与数据库的交互次数是决定处理时间的最重要因素,减少交互的次数是提升效率的最好途径,所以在开发过程中,请将show_sql设置为true,深入了解Hibernate的处理过程,尝试不同的方式,可以使得效率提升。

尽可能对每个页面的显示,对数据库的操作减少到100----150条以内。越少越好。

以上是在进行struts+hibernate+spring进行项目开发中,对hibernate性能优化的几点心得。

python写入xml

转载请注明出处代码入门网 » python写入xml

资讯

pythonif判断语句

阅读(7)

本文主要为您介绍pythonif判断语句,内容包括刚自学python,用if判断语句怎么编写个程序,,pythonif语句可以多条件判断么,pythonif语句可以多条件判断么。i=1时,第二个for语句执行n次;i=2时,第二个for语句执行n-1次;i=3时,第二个for语句执行n-2次.

资讯

linux服务器python

阅读(7)

本文主要为您介绍linux服务器python,内容包括linux下使用python访问服务器中文件,在linux服务器上同时安装python2.6和python3,如何在linux服务器上用PHP执行python脚本。我估计你用的是centos吧,因为centos的yum以来python2.6,所以默认安装

资讯

pythondata

阅读(8)

本文主要为您介绍pythondata,内容包括python中某量后接一个.data[]是什么意思,python中某量后接一个.data[]是什么意思,python爬虫data是什么意思。用pandas中的DataFrame时选取行或列:import numpy as npimport pandas as pdfrom p

资讯

python字符串格式化

阅读(8)

本文主要为您介绍python字符串格式化,内容包括关于python的字符串格式化,Python如何格式化输出字符串,python字符串格式化什么意思。在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形

资讯

phprubyPython

阅读(8)

本文主要为您介绍phprubyPython,内容包括php和python和ruby,php、ruby和python哪种语言的学习周期短,php、ruby和python哪种语言的学习周期短。perl基本已经被淘汰,在各方面几乎已经没有优势,虽然说还正在开发perl6啊什么的,不过基本上大势已

资讯

pythonsyspath

阅读(8)

本文主要为您介绍pythonsyspath,内容包括python的sys.path是从什么地方读取的,pythonsys.path从哪里,pythonsys.path默认值哪儿设置。sys模块包含了与Python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性

资讯

学Python对java

阅读(3)

本文主要为您介绍学Python对java,内容包括JavaVSPython应该先学哪个,学Java还是学python好呢,Python和java学哪个好了。Java和python犹如北乔峰南慕容,竞争不相上下。如果有能力同时学习那再好不过了,但很多刚刚接触IT行业的小伙伴在学习初期

资讯

python和php

阅读(8)

本文主要为您介绍python和php,内容包括python与php的区别是什么,php和python哪个更有前途在国内的未来,Python和PHP有什么区别。输出、数据类型、访问权限、定义变量和方法不同输出Python: print 默认换行,不换行要加逗号。PHP: echo 可以输

资讯

python官网

阅读(7)

本文主要为您介绍python官网,内容包括python3.4.0官网怎么下,如何安装python,python官网安装选择哪个。首先,需要到python的官方网站下载python的安装包。2、打开官方网站之后,点击“Downloads”一栏,然后在弹出的窗口选择“

资讯

python树的遍历

阅读(7)

本文主要为您介绍python树的遍历,内容包括python二叉树先序遍历什么意思,python怎么用递归遍历多层目录树,求一个python的三叉树算法。Python实现递归遍历指定文件目录(startdir),从而找到所有与指定的文件或目录(target)名相同的文件或目录的绝

资讯

pythondict的keys

阅读(8)

本文主要为您介绍pythondict的keys,内容包括pythondict.keys是什么类型,python怎么遍历dict的keys,Python中如何以dict的key排序输出。看到有人回答,但是不太全,如果遍历dict有如下机种方式:d是dict()类型1:for key in d:print key,d[ke

资讯

eclipsepython插件

阅读(7)

本文主要为您介绍eclipsepython插件,内容包括如何在eclipse中安装python的插件,eclipse怎么装python插件,如何为eclipse安装合适版本的python插件pydev。安装完Pydev插件之后,有时我们会发现知在Window -> Preferences下并没有PyDev选项,这是

资讯

python遍历树

阅读(5)

本文主要为您介绍python遍历树,内容包括python二叉树是怎么实现的,python怎么用递归遍历多层目录树,python二叉树先序遍历什么意思。#coding:utf-8#author:Elvisclass TreeNode(object):def __init__(self):

资讯

pythonmac教程

阅读(7)

本文主要为您介绍pythonmac教程,内容包括pythonmac版怎么使用,怎么在mac上使用python,mac怎么运行python。如果要使用 Python 2 来运行此文件,因为 OS X 自带 Python 2,所以直接输入1搜索python "python"文件

资讯

pythonif判断语句

阅读(7)

本文主要为您介绍pythonif判断语句,内容包括刚自学python,用if判断语句怎么编写个程序,,pythonif语句可以多条件判断么,pythonif语句可以多条件判断么。i=1时,第二个for语句执行n次;i=2时,第二个for语句执行n-1次;i=3时,第二个for语句执行n-2次.

资讯

linux服务器python

阅读(7)

本文主要为您介绍linux服务器python,内容包括linux下使用python访问服务器中文件,在linux服务器上同时安装python2.6和python3,如何在linux服务器上用PHP执行python脚本。我估计你用的是centos吧,因为centos的yum以来python2.6,所以默认安装

资讯

pythondata

阅读(8)

本文主要为您介绍pythondata,内容包括python中某量后接一个.data[]是什么意思,python中某量后接一个.data[]是什么意思,python爬虫data是什么意思。用pandas中的DataFrame时选取行或列:import numpy as npimport pandas as pdfrom p

资讯

python字符串格式化

阅读(8)

本文主要为您介绍python字符串格式化,内容包括关于python的字符串格式化,Python如何格式化输出字符串,python字符串格式化什么意思。在python中也有类似于c中的printf()的格式输出标记。在python中格式化输出字符串使用的是%运算符,通用的形

资讯

phprubyPython

阅读(8)

本文主要为您介绍phprubyPython,内容包括php和python和ruby,php、ruby和python哪种语言的学习周期短,php、ruby和python哪种语言的学习周期短。perl基本已经被淘汰,在各方面几乎已经没有优势,虽然说还正在开发perl6啊什么的,不过基本上大势已

资讯

pythonsyspath

阅读(8)

本文主要为您介绍pythonsyspath,内容包括python的sys.path是从什么地方读取的,pythonsys.path从哪里,pythonsys.path默认值哪儿设置。sys模块包含了与Python解释器和它的环境有关的函数,这个你可以通过dir(sys)来查看他里面的方法和成员属性

资讯

学Python对java

阅读(3)

本文主要为您介绍学Python对java,内容包括JavaVSPython应该先学哪个,学Java还是学python好呢,Python和java学哪个好了。Java和python犹如北乔峰南慕容,竞争不相上下。如果有能力同时学习那再好不过了,但很多刚刚接触IT行业的小伙伴在学习初期

资讯

一个python程序

阅读(2)

本文主要为您介绍一个python程序,内容包括用python编写一个程序,如何用python运行一个程序,用python编写一个简单的程序。ic=float(input(请输入路程(单位为公里km):))sj=float(input(请输入等待时间(单位为分钟min):))t

资讯

毕业设计python

阅读(1)

本文主要为您介绍毕业设计python,内容包括用python做毕业设计,做个什么题目稍微容易一点,用Python做毕业设计选什么项目比较好,刚刚接触python,正好赶上毕设,想做python,由于是新手,所以想拜。首先你选择Python就很好,且不说Python本身很简

资讯

pythonlinux开发

阅读(1)

本文主要为您介绍pythonlinux开发,内容包括如何在linux下开发python程序,pycharm怎么开发linux程序,linux和python先学哪个。众所周知,系统管理员需要精通一门脚本语言,而且招聘机构列出的职位需求上也会这么写。大多数人会认为 Bash (或者其

资讯

python上海

阅读(1)

本文主要为您介绍python上海,内容包括上海python培训学费多少钱老男孩培训机构多少钱,想学习python,麻烦问一下上海哪家比较好一点的培训机构有这个课程,上海python就业前景是否值得期待。优点 门槛低,上手快; 2、比 R 更具有通用性和实用性

资讯

python程序运行时

阅读(1)

本文主要为您介绍python程序运行时,内容包括分析python程序运行时间的几种方法,python的程序怎么运行,如何运行Python程序。你在windows下根本不用这么麻烦: 首先,比如你的程序名字是 test.py 如果你想调用某个具体函数,就自己写一个的文件,比

资讯

python在线编译

阅读(1)

本文主要为您介绍python在线编译,内容包括python在线编译器哪个,求一个好的免费的Python编译器,最好是直接丢链接,谢谢大佬,什么软件可以编译Python。实际上python 是脚本语言解释执行的,并不存在编译这个概念。用python -m py_compile file

资讯

pythonascii字符

阅读(1)

本文主要为您介绍pythonascii字符,内容包括python判断纯ASCII字符串怎么做,如何使用Python获得一个字符的ASCII值,python怎么判断ascii字符串问题。如果要判断某路径是否包换中文,可以用正则表达式判断是否含有双字节字符>>> import re>>> r

资讯

python进程通信

阅读(1)

本文主要为您介绍python进程通信,内容包括python进程间通信怎么理解,python进程间通信怎么理解,python进程间通信怎么理解。在2.6才开始使用multiprocessing 是一个使用方法类似threading模块的进程模块。允许程序员做并行开发。并且可以在

资讯

eclipse运行python

阅读(1)

本文主要为您介绍eclipse运行python,内容包括如何在eclipse中运行python,如何在eclipse中运行python,怎么用eclipse打开python项目。下载python下载eclipse假设有上面两个,下载一个Python的Eclipse插件pydev下载完后将其解压到Eclipse的目

资讯

python类的self

阅读(1)

本文主要为您介绍python类的self,内容包括python怎么理解类和self的用法和含义,python怎么理解类和self的用法和含义,python中self是什么意思。python的class保留了语言在进化过程中的一些遗迹。对象这种概念,可以追溯到C语言中大量使用的结

资讯

数组长度python

阅读(1)

本文主要为您介绍数组长度python,内容包括python数组要先定义长度吗,python数组要先定义长度吗,python如何输入一个长度不定的数组。视情况而定如果你的数来组是追加一个元素的可以不用定义长度如果你初始化一个列自表然后要修改其中的值的