「XML関連」の編集履歴(バックアップ)一覧はこちら

XML関連」(2010/06/26 (土) 12:09:09) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

* xmllintコマンド  通信路上でのデータ交換で使うXMLデータは、データ量を少なくするためか、改行がなく、1行のデータになっていることが多い。  これだと見にくいので、改行や適切なインデントを入れて整形してくれるツールがあると便利である。  手元のLinux(Ubuntu10.04)だと、&bold(){xmllintコマンド} がインストールされており、以下のようなことができる。 #contents() ** XMLの整形 以下のコマンドで整形されたXMLが標準出力に出力されます。 $ xmllint --format &italic(){<XMLファイル>} 例: ■変換前  $ cat note_flat.xml  <note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note> ■変換後  $ xmllint --format note_flat.xml  <?xml version="1.0"?>  <note>   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body>  </note> ** encodeの設定 以下のコマンドで、指定したエンコーディングで変換されたXMLが標準出力に出力されます。 $ xmllint --encode <エンコード名> &italic(){<XMLファイル>} 例: ■変換元(XML宣言がない。エンコードはUTF-8) $ cat note_jp.xml <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ■エンコーディングをUTF-8に設定 $ xmllint --encode UTF-8 note_jp.xml > note_jpUTF8.xml $ nkf --guess note_jpUTF8.xml  <--エンコードの確認 UTF-8 $ cat note_jpUTF8.xml <?xml version="1.0" encoding="UTF-8"?> <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ■エンコーディングをUTF-8からShift_JISに変更 $ xmllint --encode Shift_JIS note_jpUTF8.xml > note_jpSJIS.xml $ nkf -guess note_jpSJIS.xml Shift_JIS $ nkf note_jpSJIS.xml <?xml version="1.0" encoding="Shift_JIS"?> <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ** XMLの自動生成 以下のコマンドで簡単なXMLが出力される。例にあるものしか出力できないようなので、あまり使い道はないかも・・・ $ xmllint --auto 例: $ xmllint --auto <?xml version="1.0"?> <info>abc</info> 他にも、XML形式の妥当性チェックなどもあり、DTD、XMLScheme、RELAXNGなどと使った妥当性検証もできるようです。
* xmllintコマンド  通信路上でのデータ交換で使うXMLデータは、データ量を少なくするためか、改行がなく、1行のデータになっていることが多い。  これだと見にくいので、改行や適切なインデントを入れて整形してくれるツールがあると便利である。  手元のLinux(Ubuntu10.04)だと、&bold(){xmllintコマンド} がインストールされており、以下のようなことができる。 #contents() ** XMLの整形 以下のコマンドで整形されたXMLが標準出力に出力されます。 $ xmllint --format &italic(){<XMLファイル>} 例: ■変換前  $ cat note_flat.xml  <note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note> ■変換後  $ xmllint --format note_flat.xml  <?xml version="1.0"?>  <note>   <to>Tove</to>   <from>Jani</from>   <heading>Reminder</heading>   <body>Don't forget me this weekend!</body>  </note> ** encodeの設定 以下のコマンドで、指定したエンコーディングで変換されたXMLが標準出力に出力されます。 $ xmllint --encode <エンコード名> &italic(){<XMLファイル>} 例: ■変換元(XML宣言がない。エンコードはUTF-8) $ cat note_jp.xml <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ■エンコーディングをUTF-8に設定 $ xmllint --encode UTF-8 note_jp.xml > note_jpUTF8.xml $ nkf --guess note_jpUTF8.xml  <--エンコードの確認 UTF-8 $ cat note_jpUTF8.xml <?xml version="1.0" encoding="UTF-8"?> <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ■エンコーディングをUTF-8からShift_JISに変更 $ xmllint --encode Shift_JIS note_jpUTF8.xml > note_jpSJIS.xml $ nkf -guess note_jpSJIS.xml Shift_JIS $ nkf note_jpSJIS.xml <?xml version="1.0" encoding="Shift_JIS"?> <note> <to>太郎</to> <from>花子</from> <heading>リマインダー</heading> <body>今週末私を忘れるな!</body> </note> ** XMLの自動生成 以下のコマンドで簡単なXMLが出力される。例にあるものしか出力できないようなので、あまり使い道はないかも・・・ $ xmllint --auto 例: $ xmllint --auto <?xml version="1.0"?> <info>abc</info> 他にも、XML形式の妥当性チェックなどもあり、DTD、XMLScheme、RELAXNGなどと使った妥当性検証もできるようです。 ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示: