@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Python: xml.etree.ElementTree で XML を加工する

docs.python.org

  • XML ファイルを読む
  • XML サブツリーを文字列から作る
  • XML フラグメントを XML ツリーに追加する
  • XML を整形(インデント)して出力する

などをするデモ。

replit.com

いくつかの記事や StackOverflow 投稿を見たが、ネームスペースの適切な扱いを簡潔に書いているこの Gist が役に立った。

gist.github.com

  • XML の整形には xml.etree.ElementTree.indent という API があるが、Python 3.9 から。Replit の Python は 3.8 なので動かない。残念。
  • 他の XML 処理系の標準添付モジュールを駆使して工夫する方法もいくつか見つかり、うまくいくのもあったが、Python 3.9 をインストールできる環境ならインストールして↑を使ったほうが早いし確実。