2014/07/18
データいろいろ > 長大な XML を開けるエディタ
データいろいろ > 長大な XML を開けるエディタ
総務省の次世代統計利用システムなど長大な、といっても 10数MB 程度までの XML ファイルに使うエディタ。基本は PostgreSQL にインポートして xpath 関数等でクエリするが、時々必要になる。OS 等は 2014/04/17 を参照。XML ファイルの例として下記をダウンロードする。
■ 次世代統計利用システム : 平成22年国勢調査 : 従業地・通学地による職業等集計(就業者の職業(大分類)): 従業地による産業(大分類),職業(大分類),男女別15歳以上就業者数
http://statdb.nstac.go.jp/api/1.0b/app/getStatsData?statsDataId=0003072816&appId=xxxxx
↓ URL にアプリケーション ID がない場合のレスポンス。メールアドレスがあれば誰でも無償でウェブ上から登録できアプリケーション ID を得られる。詳細は公式サイトを参照。
サイズの小さい XML なら Chrome でも表示できるが、この統計表は 13 MB 弱あるので ↓ こうなる。データ自体は取得できており Chrome のメニューで適当なファイルに保存できる。二番目の画像が保存したところ。
↓ 最近のメモ帳は知らないが XP 付属ので開くとこうなる。読み込みは数秒程度で意外にかからなかった。しかし次世代統計利用システムの XML の改行コードが LF なのに対し XP のメモ帳は CRLF しか受け付けないため改行が消え、事実上使えない。
↓ 一方 Terapad は一秒とかからず開け、LF 改行もきちんと認識され、全体のスクロールや検索も問題ない。とりあえず開くなら Terapad で十分。
ところで、いったん PostgreSQL にインポートした XML を一時的に COPY コマンドで出力する場合、改行を含めるのが面倒。デフォルトは \n にエスケープされてしまう。そこで改行を一括削除して出力することが多いが、そうすると Terapad はじめ多くのエディタでは開けなくなる。仮に開けても、改行が無いので内容を把握できない(機械的に右端で折り返しても無意味)。
改行コードがなくても 10数MB 程度の XML を開けるエディタを探していたら、意外にも Microsoft が無償提供する XML エディタ ↓ で開けた。
■ Microsoft : XML Notepad 2007
http://www.microsoft.com/en-us/download/details.aspx?id=7973
普通のエディタと違い XML のノードツリーをたどって閲覧・編集するタイプ。開くのに少し時間がかかるが、属性と子ノードの違いが一目瞭然で便利。
…と思っていたら、次世代統計利用システム XML 中の DATA_INF ノードを開いて下へスクロールしたとたん ↓ 負荷が高いまま応答せず。DATA_INF 下に10万以上の子ノード(VALUE タグ)があるので処理し切れない模様。数分待っても駄目なので強制終了した。
というわけで次世代統計利用システムの XML を改行なしでローカルファイに保存すると、今のところ使えるエディタが見つからない。もしあれば別途記事にする。下は PostgreSQL の XML 型で先頭1万件のデータの属性とテキストノードをクエリした様子。右下の 3047 が所要ミリ秒。
■ 次世代統計利用システム : 平成22年国勢調査 : 従業地・通学地による職業等集計(就業者の職業(大分類)): 従業地による産業(大分類),職業(大分類),男女別15歳以上就業者数
http://statdb.nstac.go.jp/api/1.0b/app/getStatsData?statsDataId=0003072816&appId=xxxxx
↓ URL にアプリケーション ID がない場合のレスポンス。メールアドレスがあれば誰でも無償でウェブ上から登録できアプリケーション ID を得られる。詳細は公式サイトを参照。
サイズの小さい XML なら Chrome でも表示できるが、この統計表は 13 MB 弱あるので ↓ こうなる。データ自体は取得できており Chrome のメニューで適当なファイルに保存できる。二番目の画像が保存したところ。
↓ 最近のメモ帳は知らないが XP 付属ので開くとこうなる。読み込みは数秒程度で意外にかからなかった。しかし次世代統計利用システムの XML の改行コードが LF なのに対し XP のメモ帳は CRLF しか受け付けないため改行が消え、事実上使えない。
↓ 一方 Terapad は一秒とかからず開け、LF 改行もきちんと認識され、全体のスクロールや検索も問題ない。とりあえず開くなら Terapad で十分。
ところで、いったん PostgreSQL にインポートした XML を一時的に COPY コマンドで出力する場合、改行を含めるのが面倒。デフォルトは \n にエスケープされてしまう。そこで改行を一括削除して出力することが多いが、そうすると Terapad はじめ多くのエディタでは開けなくなる。仮に開けても、改行が無いので内容を把握できない(機械的に右端で折り返しても無意味)。
改行コードがなくても 10数MB 程度の XML を開けるエディタを探していたら、意外にも Microsoft が無償提供する XML エディタ ↓ で開けた。
■ Microsoft : XML Notepad 2007
http://www.microsoft.com/en-us/download/details.aspx?id=7973
普通のエディタと違い XML のノードツリーをたどって閲覧・編集するタイプ。開くのに少し時間がかかるが、属性と子ノードの違いが一目瞭然で便利。
…と思っていたら、次世代統計利用システム XML 中の DATA_INF ノードを開いて下へスクロールしたとたん ↓ 負荷が高いまま応答せず。DATA_INF 下に10万以上の子ノード(VALUE タグ)があるので処理し切れない模様。数分待っても駄目なので強制終了した。
というわけで次世代統計利用システムの XML を改行なしでローカルファイに保存すると、今のところ使えるエディタが見つからない。もしあれば別途記事にする。下は PostgreSQL の XML 型で先頭1万件のデータの属性とテキストノードをクエリした様子。右下の 3047 が所要ミリ秒。