ストリップからのコメントのxmlファイルの、かわいい-印刷したりする事ができ

StackOverflow https://stackoverflow.com/questions/1464697

  •  13-09-2019
  •  | 
  •  

質問

私はこの巨大なxmlファイルを多く含みます。

きむすびにしていただきました"best way"グレーのクラムシェル型クランプは全てのコメントやく形式のxmlからlinuxコマンドがかかってしまいます。

役に立ちましたか?

解決

あなたがきちんと使用することができます。

$ tidy -quiet -asxml -xml -indent -wrap 1024 --hide-comments 1 tomcat-users.xml
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <user username="qwerty" password="ytrewq" roles="manager-gui" />
</tomcat-users>

他のヒント

あなたはxmllintツールで見たいと思うかもしれません。これは、いくつかのオプション(かなり印刷を行いますどの--formatの1)を持っているが、私は、このツールを使ってコメントを削除する方法を見つけ出すことはできません。

また、あなたとしたい何かをするために、 XMLStarlet のコマンドラインツールの束をチェックしてくださいXML。その後の操作を行います。

xml c14n --without-comments # XML file canonicalization w/o comments

編集:OPは最終的にこのラインを使用します:

xmlstarlet c14n --without-comments old.xml > new.xml

を整理整頓しようといTomcatのserver.xml使用してい

sed 's/<!--/\x0<!--/g;s/-->/-->\x0/g' | grep -zv '^<!--' | tr -d '\0' | grep -v "^\s*$"

I.。

function tidy() {
 echo "$( cat $1 | sed 's/<!--/\x0<!--/g;s/-->/-->\x0/g' | grep -zv '^<!--' | tr -d '\0' | grep -v "^\s*$")"
}

tidy server.xml

...のまま印刷、xmlなります。

注意:な作品が合理的にも簡単なもので失敗するCDATAブロックの一部です。でのみ使用制御xmlスクリプトが必要なことはありません必要なエスケープシングル <-- または --> できます。

第sedマークのコメントの開始および停止と0x0文字、grepと -z 扱い0x0としての行区切り文字の検索ラインからのコメントでは、-v反転のフィルターは、多くの有意義にする。最後に、 tr -d\0`をすべて削除してこれらの0x0、洗練させていきたいと思い、別のgrepを取り除空線出来上がり.

最善の方法は、正しく、すべてのあいまいなコーナーケースを処理するために、XMLパーサーを使用することです。あなたが迅速かつ汚い何かが必要な場合でも、Perlの正規表現を使用して短いのさまざまなソリューションがあります十分であってもよい。

scroll top