14

フォーマットがかなり圧縮されたXMLファイルがあり、すべてのタグが次のようにくっついています。

<PersonalData><IndividualDetails><Title>Mr</Title><Gender>Male</Gender><FirstName>Hae</FirstName><Surname>JONES</Surname><Occupation>Banker</Occupation><DateofBirth>4/6/76</DateofBirth><LastKnownAddress></LastKnownAddress><LastKnownPostCode>00145</LastKnownPostCode><OtherNames></OtherNames></IndividualDetails><OccupationDetails><Company>SD Bank</Company><CompanyAddress>Sunset Boulevard NY</CompanyAddress><ContactNo>335698457</ContactNo></OccupationDetails></PersonalData>

タグを適切にフォーマットできるコマンドはシェルにありますか?インデントがない場合は、タグを独自の行に追加するだけでも問題を解決できます。

4

2 に答える 2

31
xmllint --format <your-xml-file>

$ cat test.xml
<a><b>c</b></a>
$ xmllint --format test.xml
<a>
  <b>c</b>
</a>
$ xmllint --format test.xml > test.formatted.xml
$ cat test.formatted.xml
<a>
  <b>c</b>
</a>
$
于 2012-08-15T07:14:00.280 に答える
10
tidy -xml -i -q

-xml-入力が整形式のXMLであることを指定します

-q-不要な出力を抑制します

-i-要素の内容をインデントします

tidyはファイルとstdin/stdoutを処理できます

echo '<a><b>c</b></a>' | tidy -xml -i -q

を生成します

    <a>
      <b> c </ b>
    </a>
于 2012-08-15T07:22:33.480 に答える