導航:首頁 > 編程語言 > Python格式化寫入xml文件

Python格式化寫入xml文件

發布時間:2023-08-30 19:47:51

⑴ 初學python求助Python解析xml

python有三種方法解析XML,分別是SAX,DOM,以及ElementTree:

  1. SAX用事件驅動模型,通過在解析XML的過程中觸發一個個的事件並調用用戶定義的回調函數來處理XML文件。

  2. DOM模型將XML數據在內存中解析成一個樹,通過對樹的操作來操作XML。

  3. ElementTree就像一個輕量級的DOM,具有方便友好的API。代碼可用性好,速度快,消耗內存少。

Python 解析XML實例:

#!/usr/bin/python
#-*-coding:UTF-8-*-

importxml.sax

classMovieHandler(xml.sax.ContentHandler):
def__init__(self):
self.CurrentData=""
self.type=""
self.format=""
self.year=""
self.rating=""
self.stars=""
self.description=""

#元素開始事件處理
defstartElement(self,tag,attributes):
self.CurrentData=tag
iftag=="movie":
print"*****Movie*****"
title=attributes["title"]
print"Title:",title

#元素結束事件處理
defendElement(self,tag):
ifself.CurrentData=="type":
print"Type:",self.type
elifself.CurrentData=="format":
print"Format:",self.format
elifself.CurrentData=="year":
print"Year:",self.year
elifself.CurrentData=="rating":
print"Rating:",self.rating
elifself.CurrentData=="stars":
print"Stars:",self.stars
elifself.CurrentData=="description":
print"Description:",self.description
self.CurrentData=""

#內容事件處理
defcharacters(self,content):
ifself.CurrentData=="type":
self.type=content
elifself.CurrentData=="format":
self.format=content
elifself.CurrentData=="year":
self.year=content
elifself.CurrentData=="rating":
self.rating=content
elifself.CurrentData=="stars":
self.stars=content
elifself.CurrentData=="description":
self.description=content

if(__name__=="__main__"):

#創建一個XMLReader
parser=xml.sax.make_parser()
#turnoffnamepsaces
parser.setFeature(xml.sax.handler.feature_namespaces,0)

#重寫ContextHandler
Handler=MovieHandler()
parser.setContentHandler(Handler)

parser.parse("movies.xml")

⑵ python參數如果是xml字元串,該怎麼寫

調用Python腳本時傳遞XML字元串作為參數可能會導致錯誤,因為某些特殊字元可能被操作系統或Python解釋器解釋為命令或代碼。為配備升了避免這個問題,可以將XML字元串作為滾枝一個文本文件傳遞,或者使用base64編碼將字元串編碼為非特殊字元。下面是兩種方法的示例。

方法一:將XML字元串保存到文件,並將文件名作為參數傳遞:

import sys

import xml.etree.ElementTree as ET

filename = sys.argv[1]

with open(filename, 'r') as file:

xml_string = file.read()

xml_root = ET.fromstring(xml_string)

import base64

xml_string = '<?xml version="1.0" encoding="UTF-8"?>...'

encoded_xml = base64.b64encode(xml_string.encode()).decode()

import sys

import base64

import xml.etree.ElementTree as ET

encoded_xml = sys.argv[1]

decoded_xml = base64.b64decode(encoded_xml.encode()).decode()

xml_root = ET.fromstring(decoded_xml)

閱讀全文

與Python格式化寫入xml文件相關的資料

熱點內容
演算法戰書籍 瀏覽:575
卸載網路伺服器是什麼意思 瀏覽:123
菜鳥app的收貨地址在哪裡 瀏覽:488
伺服器配什麼顯卡 瀏覽:369
動態壁紙不動了是怎麼回事安卓 瀏覽:412
申萬宏源app哪裡看總盈利 瀏覽:133
單片機測電感電容 瀏覽:165
android在子線程中更新ui 瀏覽:694
演算法分析師面試有什麼要求 瀏覽:994
容器演算法大全圖解 瀏覽:69
cad後置命令失效 瀏覽:692
殺手阻擊存檔文件夾是哪一個 瀏覽:212
禁書pdf 瀏覽:920
沒用app語音智能提醒怎麼設置 瀏覽:502
linuxwiki安裝 瀏覽:680
隔牆演算法 瀏覽:174
安卓手機為什麼app不通知 瀏覽:550
申請雲伺服器購買費用 瀏覽:115
雲伺服器鏡像下載到本地 瀏覽:4
電腦文件夾名有橫杠 瀏覽:154