【結論】XMLを安全にパース・変換する
XML処理では外部実体、DTD、巨大ファイル、Namespace、順序、属性、文字コードを先に確認します。
信頼できないXMLにはdefusedxmlを使い、巨大ファイルはiterparseなどのストリーミング処理を選びます。
JSON変換ではXMLの属性、繰り返し要素、Mixed Contentを失わない変換規則を定義します。
# ターミナルで実行:XML構文を検証
xmllint --noout legacy_data.xml
# ターミナルで実行:DOCTYPEと外部実体を確認
grep -En '具体的な手順・設定方法
入力サイズ、Schema、Namespace、属性、繰り返し要素を確認します。
XMLからJSONへのマッピング規則と検証用サンプルを作ります。
件数、ID、合計、順序を比較してから本番ファイルを変換します。
実践プロンプト / 活用テクニック
# 起動後のセッション内で入力
legacy_data.xmlの安全な変換計画を作成してください。
DOCTYPE、外部実体、Namespace、属性、繰り返し要素を確認してください。
ファイル全体をメモリへ読み込まず、変換と外部通信はまだ行わないでください。注意点・よくあるエラーと対処法
標準ElementTreeを信頼できないXMLへ無条件に使わないでください。
XMLからJSONへの変換は可逆とは限りません。
RSS取得ではURL、TLS、Redirect、Content-Type、サイズ上限を検証します。