発生している問題
表記の通り、例えば、<div>&</div>
のような文字列を、
xml.dom.minidom.parseString()
の機能をつかってパースしたいのですが、
xml.parsers.expat.ExpatError
となってしまいます。
該当のソースコード
python
1import xml.etree.ElementTree as ET 2import xml.dom.minidom as md 3 4xmlRoot = ET.Element('root') 5# ElementTreeでXMLを作成 6 7# 文字列パースを介してminidomへ移す 8document = md.parseString('<div>&</div>') 9 10file = open('test.xml', 'w') 11# エンコーディング、改行、全体のインデント、子要素の追加インデントを設定しつつファイルへ書き出し 12document.writexml(file, encoding='utf-8', newl='\n', indent='', addindent=' ') 13file.close()
やってみたこと
& (アンパサンド) をとりのぞいて .parseString()
したところ、エラー無く終了したので、
& になにかしらのエスケープが必要なのではと考えているのですが、どのようにエスケープしたら良いでしょうか?
また、& 以外にもエスケープが必要な文字は存在するでしょうか?
そもそも xml.dom.minidom.parseString()
ではなく、ほかの機能を使うべきだったり、他の言語を使用するべきなど、意見ありましたら、ご指摘お願いします。
