导航:首页 > 编程语言 > 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文件相关的资料

热点内容
xp系统如何查找服务器名 浏览:983
土的压缩系数的确定方法 浏览:647
程序员家里健身 浏览:620
电视看篮球app哪个好 浏览:47
高中毕业当程序员 浏览:245
php标签属性大全 浏览:897
远程访问服务器ip地址 浏览:312
程序员吃鸡蛋炒菜 浏览:173
在哪里看俄罗斯电视剧app 浏览:308
怎么找数据库服务器地址 浏览:487
服务器调试怎么翻译 浏览:921
php如何处理ajax请求 浏览:211
php数组下标存在 浏览:707
php获取ip归属地 浏览:175
撩女程序员怎么办 浏览:508
百度服务器做什么 浏览:193
打开软件加速服务器有什么危害 浏览:87
php去除数组下标 浏览:794
ipad的app内容哪里看 浏览:284
遇见空间app在哪里 浏览:547