(動画教材準備中)
xb : XMLビューティファイアー
Usage : xb
Version : Tue Jan 9 09:02:34 JST 2024
Edition : 1
属性で改行されたり、タグ間でインデント改行されていない XML ファイル
を、タグ単位にまとめた上でインデント構造に変換します。空行を削除し、
ディレクトリタグを1行、ファイルタグを1行、単独タグを1行にします。
$ cat xml1
<?xml aaa="aaa"
bbb="bbb" ?>
<top/>
<!-- coment -->
<dir1 id1="0"
id2="1"><!-- comment --><dir2 id="a">
<!-- comment --><file attr="001">xxx</file><!-- comment -->
<file attr="002">yyy</file>
<file attr="003">zzz</file> </dir2>
<dir2 id="b"> <file attr="004">XXX</file> <file attr="005">YYY</file>
</dir2>
</dir1>
<tail/>
$ xb xml1
<?xml aaa="aaa" bbb="bbb" ?>
<top/>
<!-- coment -->
<dir1 id1="0" id2="1">
<!-- comment -->
<dir2 id="a">
<!-- comment -->
<file attr="001">xxx</file>
<!-- comment -->
<file attr="002">yyy</file>
<file attr="003">zzz</file>
</dir2>
<dir2 id="b">
<file attr="004">XXX</file>
<file attr="005">YYY</file>
</dir2>
</dir1>
<tail/>
開始タグの直後に終了タグがある場合は、ファイルタグと見なします。
$ cat xml2
<dir><a></a></dir>
$ xb xml2
<dir>
<a></a>
</dir>
ファイルタグの間に単独タグがある場合は、ファイルタグの値とみなします。
$ cat xml3
<dir><a>abc<br/>def</a></dir>
$ xb xml3
<dir>
<a>abc<br/>def</a>
</dir>