ElementTree を使用して XML ファイルを生成するときに問題が発生しました。属性内の空白に関する XML 規則により、属性内のすべての空白文字は、XML ファイルの解析時にスペースに正規化されます。しかし、数値エンティティはそうではありません。したがって、XML のメモリ内表現の属性値にタブ、\x09
または などを\x0d\x0a
含めるには、XML ファイルにそれぞれ	
またはを含める必要があります
。
ただし、ElementTree は\x0a
文字のみを数値エンティティとしてシリアル化しますが、eg \x09
andはシリアル化しません。\x0d
それらは XML ファイル内の実際のタブまたは cr 文字として終了し、ElementTree 自体を含む準拠する XML プロセッサは通常のスペースを読み戻します。したがって、往復は不可能です。
これについて何かできることはありますか?ファイルの書き込みにElementTreeを使用しないことを除いて?