python生成xml
A. 如何使用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 = 'www.xxx.com'
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()
B. 使用python生成幾個學生的信息,已xml形式展現;(求高人指導解答,節點不需要太復雜,易於學習即可)
#encoding:UTF-8
importos
defCreateXML():
importxml.dom.minidom
impl=xml.dom.minidom.getDOMImplementation()
dom=impl.createDocument(None,'students',None)
root=dom.documentElement
student=dom.createElement('student')
root.appendChild(student)
ElementName=dom.createElement('name')
TextName=dom.createTextNode('王二麻子')
ElementName.appendChild(TextName)
student.appendChild(ElementName)
ElementAge=dom.createElement('age')
TextAge=dom.createTextNode('28')
ElementAge.appendChild(TextAge)
student.appendChild(ElementAge)
print'FilePathis:%s'%os.path.join(os.getcwd(),'Student.xml')
f=open(os.path.join(os.getcwd(),'Student.xml'),'w')
dom.writexml(f,addindent='',newl=' ',encoding='UTF-8')
if__name__=="__main__":
CreateXML()
生成xml的代碼如上,只涉及到基本用法,具體什麼意思自己看文檔吧。如果想大量生成xml,比如從其他文件裡面導出什麼的就得改造下了。
C. 如何用Python輸出漂亮的xml文件
你的問題可以直接轉化為python如何讀取文件,使用這句代碼:open('thefile.xml').read( ) 下面是例子: >>> open('D:\\Test.xml',encoding='utf8').read()不知道為什麼,python3.4中讀取文件的默認使用GBK,這一點要注意
D. python生成xml遇到問題
from xml.dom import minidom
doc = minidom.Document()
print doc.toprettyxml("", "", "UTF-8")
如果解決了您的問題請點贊!
如果未解決請繼續追問
E. python生成xml,信息頭怎麼獨立成一行
a=' 0-229956 ' b="' 0-(A-1) '\n' B-229956 '" d=open("a.xml","w") while 1: line=d.readline() if line==a: replace(a,b) ifnotline: break ##如果你的A,B兩個值是從終端讀取的話在開始read一下就行: read A read B
F. 1、使用python讀取依據生成的xml文件,添加樣式表,最中生成一個html文件
#coding=utf8
#引入要用到的xml解析庫這里我們用比較輕量級的minidom就行了
importxml.dom.minidom
#定義一個html輸出模板
#後面我們只是要把這段html中的學生數據部分(<student_trs/>)換成xml中讀到的數據
template="""
<html>
<tableborder="1"style="width:100%;text-align:center;">
<tr>
<tdcolspan="4">學生信息</td>
</tr>
<student_trs/>
</table>
</html>
"""
#讀取xml文檔內容,這里假設是a.xml
dom=xml.dom.minidom.parse('a.xml')
#獲取xml中的所有student節點
student_nodes=dom.getElementsByTagName('student')
#初始化student_trs為空
student_trs=""
#遍歷每一條學生信息
fornodeinstudent_nodes:
#getAttribute用戶獲取節點的屬性,得到id屬性值即學號
#因為xml解析後是Unicode編碼的,所以這里要轉成utf8編碼,下面同理
sid=node.getAttribute("id").encode('utf-8')
#獲取所有子節點
children=node.childNodes
forchildinchildren:
#判斷子節點的名字為姓名、性別、專業的話,就採集其對應文本
ifchild.nodeName.encode('utf-8')=="姓名":
#使用。childNodes[0].nodeValue的方法得到節點的文本
name=child.childNodes[0].nodeValue.encode('utf-8')
ifchild.nodeName.encode('utf-8')=="性別":
sex=child.childNodes[0].nodeValue.encode('utf-8')
ifchild.nodeName.encode('utf-8')=="專業":
specialty=child.childNodes[0].nodeValue.encode('utf-8')
#組成html中的一行學生數據
student_tr="<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>"%(sid,name,sex,specialty)
#將這一行數據添加到總數據中
student_trs+=student_tr
#替換模板的<student_trs/>為我們上面所得到的html數據
html=template.replace("<student_trs/>",student_trs)
#輸入html結果到output.html
open("output.html","w").write(html)
#PS:你提供的xml數據有問題,確實了一個</students>標記
#正確的xml應該如下
"""
<?xmlversion="1.0"encoding="UTF-8"?>
<person>
<students>
<studentid="20140711">
<姓名>三</姓名>
<性別>男</性別>
<專業>計算機</專業>
</student>
</students>
</person>
"""
G. python 生成xml文件的時候如何設置編碼為utf-8
from xml.etree import ElementTree
filePath = 'd:\\aaa.xml'
xmldoc = ElementTree.parse(filePath)
newName = 'bbb.xml'
xmldoc.write(newName, 'utf-8')
H. 如何利用Python腳本生成sitemap.xml
織夢有個sitemap.xml插件,dede沒有自帶附件的插件,把插件上傳到ftp,在後台就會看到一個生成按鈕,點擊生成xml插件,希望對你有幫助,我的土撥培訓也是這樣弄的。
I. python生成xml,如何把頭寫成<xml version="1.0">
tree.write('createxml.xml',xml_declaration=True, encoding='utf-8', method="xml")
root = ET.Element('bookstore')
tree = ET.ElementTree()
tree._setroot(root)
child0 = ET.Element('book',{'category':"COOKING"})
root.append(child0)
child00 = ET.Element('title',{'language':"English"})
child00.text='Everyday Italian'
child0.append(child00)
tree.write('createxml.xml','utf-8')