PyXML學習筆記

2021-04-12 20:25:54 字數 2580 閱讀 7861

abstract

pyxml 是python中的乙個xml工具集,裡面包括有很多處理xml文件的程式,如pysax,expat和xmlproc等。python通過該套工具能很 好地處理xml文件,為了在zope中使用xml文件,我開始了學習該套工具的旅程,快跟我來吧,一起感受xml的革命浪潮。

table of contents

1. sax分析器

1.1. 示例

list of tables

1.1.

contenthandler類的方法

1.2.

dtdhandler類的方法

1.3.

errorhandler類的方法

table of contents

1.1. 示例

xml簡單api(sax,****** api for xml)是乙個xml分析器的標準,基於事件驅動方式。

table 1.1. contenthandler類的方法

方法描述

startdocument()

在文件開頭觸發

enddocument()

在文件結尾觸發

startelement(name,attrs)

遇到開始元素時觸發,name是元素名,attrs是元素屬性字典

endelement(name)

遇到結束元素時觸發,name是元素名

startelementns(name,qname,attrs)

處理名字空間,遇到開始元素時觸發,name是元素名,是乙個元組,包含uri和本地名,如namespace:title返回(『namespace','title')。qname是從xml中標識的原始元素名,attrs是元素屬性字典。

endelementns(name,qname)

處理名字空間,遇到結尾元素時觸發,name和qname的含義同上

characters(content)

遇到字元資料時觸發

processinginstruction(target,data)

在標識處理指令時觸發

skippedentity(name)

在跳過實體時觸發

table 1.2. dtdhandler類的方法

方法描述

notationdecl(name,publicid,systemid)

注釋宣告觸發

unparsedentitydecl(name,publicid,systemid,ndata)

非分析實體觸發

table 1.3. errorhandler類的方法

方法描述

error(exception)

在分析器遇到可恢復錯誤時呼叫,預設情況下,這個方法通過saxexception類發出乙個異常。

fatalerror(exception)

在分析器遇到致命錯誤時呼叫,呼叫該方法時,分析時停止

warning(exception)

在分析器遇到警告時呼叫,返回後,分析器繼續。

下面是乙個使用python標準的xml.sax模組處理xml文件的示例。

#!/usr/bin/python

#-*- encoding:utf-8 -*-

from xml.sax import make_parser

from xml.sax import contenthandler

import string

class myhandler(contenthandler):

ishi=""

hi=""

def startelement(self,name,attrs): #遇到元素開頭時執行,如

if name=="hi":

self.ishi=1

def endelement(self,name): #遇到元素尾時執行,如

if name=="hi":

self.ishi=""

def characters(self,content): #獲取元素內容

if self.ishi:

self.hi+=content

ch = myhandler() #生成contenthandler的例項

saxparser = make_parser() #建立sax處理器

saxparser.setcontenthandler(ch) #關聯sax處理器與contenthandler例項

saxparser.parse('weather.xml') #處理weather.xml文件

print "hi:",ch.hi #列印ch.hi的值

這裡有一幅顯示sax處理過程的。

Python常用庫PyXML的安裝及版本檢測

安裝 及檢測pyxml pyxml是 xml 庫的乙個高階元件,提供了比xml 內建庫更多的功能,如pysax,expat和xmlproc等。python通過該套工具能很好地處理xml文件,下面是安裝 pyxml 的步驟 深入安裝過程。安裝完成後,關閉安裝程式,沒有任何安裝成功的昭示 並沒有在開始選...

學習筆記 雜湊學習筆記

hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...

學習筆記 CentOS 學習筆記01

簡單的做個課堂筆記 虛擬機器用的是vmware,系統是centos cd etc sysconfig network scripts pwdls 顯示列表 cat ifcfg eth0 檢視檔案內容 vi ifcfg eth0 進入vi編輯器 onboot no 原始設定 x逐字刪除 d刪除整行 a...