人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

■XML整形の要件
内容がない場合、開始タグと閉じタグを両方記述するのではなく、空欄タグを記述する。
1:内容が空欄のタグ
通常
<TestName>AAAAAA</TestName>
空タグ
<TestName></TestName>
整形後
<TestName />
2:中身のないグループタグも同様
という要件が存在し、以下のコマンドを行うと整形は出来る。
cat in.xml | env XMLLINT_INDENT=' ' xmllint --format - > out.xml
ただし、最後に出力するXMLの中身を改行せずに一行にしたい場合は
どうしたらいいでしょうか?
1:整形後のXMLファイル内
通常
<TestName>AAAAAA</TestName>
<TestName />
整形後
<TestName>AAAAAA</TestName><TestName />

●質問者: hopefully
●カテゴリ:就職・転職 インターネット
✍キーワード:Out XML グループ コマンド タグ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● pahoo
●27ポイント

xmllintの出力に対し、sedかperlで改行を削除してはいかがでしょうか。方法は下記を参照ください。

◎質問者からの返答

ありがとうございます。


2 ● t_shiono
●27ポイント

こんなのはどうでしょうか?

単に出力から改行文字を除いているだけですが。

cat in.xml | env XMLLINT_INDENT=' ' xmllint --format - | tr -d "\r\n" > out.xml

参考:

http://blog.enjoitech.jp/detail.php?aid=69

◎質問者からの返答

なるほど。

ありがとうございます。

ですが、最終的にファイルの改行をCRLFにしたい場合は

出来ますか?

これだと中身はすべてLFですか?


3 ● t_shiono
●26ポイント

コメントが開いていないので、回答欄で失礼します。

tr -d "\r\n"

の処理はすべてのCRとLFを除去するので、xmllintの出力の改行コードが、CR+LFでも、LFでも対応可能です。

参考で挙げたURLでは、CR+LFをLFに変換するということになっていますが、CRだけではなく、LFも削除してしまえば、CR+LFでもLFでも改行はなくなります。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ