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這裡有一幅顯示sax處理過程的。#-*- 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的值
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...