Friday, February 03, 2006

 

Character reference轉換

如果在文件檔中,有一些是屬於character reference的文字如下:

<gentext key="Abstract"       text="&# x6458; &# x8981;"/>

那要如何去處理這些屬於character numeric notation的文字呢,利用python中的模組可以幫忙。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys,re
from optparse import OptionParser

class XmlParser:
   def __init__(self, XmlFile):
       self.XmlData=open(XmlFile).read().decode('utf8')
   def PrintOut(self):
       from xml.dom.minidom import parseString
       self.XmlObj= parseString(self.XmlData)
       self.XmlStr=self.XmlObj.toxml(encoding='utf8')
       print self.XmlStr

if __name__=='__main__':
   usage='%prog [option]'
   parser=OptionParser(usage=usage,version='%prog, Reversion 0.1')
   parser.add_option('-X','--Xml',help='-X file.xml, parse XML')
   options,args=parser.parse_args()
   if len(sys.argv)==1: parser.print_help();raise SystemExit
   if options.Xml:
       xmlParser=XmlParser(options.Xml)
       xmlParser.PrintOut()

利用xml模組中的minidom,可以方便地將character reference文字轉換,google中相關的網站連結資料很豐富:


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?