2012年3月29日木曜日

XMLのエスケープ文字処理

こないだ作ったスクリプトのデバックしていたら、エスケープ文字が極稀に入り込む事で、XMLが正常にパース出来ない場合がある事が判明したので、対処しましたん。


#不要文字エスケープ処理
def escapeCode(hoge):
 p1 = re.compile(u'&')
 p2 = re.compile(u'<;')
 p3 = re.compile(u'>;')
 p4 = re.compile(u'\'')
 p5 = re.compile(u'\"') #"
 
 q = p1.sub(u'&amp;',hoge)
 q = p2.sub(u'&lt;',q)
 q = p3.sub(u'&gt;',q)
 q = p4.sub(u'&apos;',q)
 q = p5.sub(u'&quot;',q)
 return q
こんな感じ。

もうちょいスマートな方法もありそうだけんど、正規表現あんまり詳しくないので、もうちょっと勉強しないとなと反省。

0 件のコメント:

コメントを投稿