Auto-formatting XML files
When you work with XML as much as I do, quite often you get sent a list of files that are not pretty-printed. By "pretty-printed", I mean nicely formatted with each new element on a new line and each nested element indented appropriately.
The files not being nicely formatted makes using command-line tools like
grep nigh-on impossible, so quite often you have to format the files before you can get any real work done.
I've been using the following script to automatically format whatever XML files I pass it:
#!/bin/bash for a do xmllint --format $a -o $a done exit 0
As you can see it just passes whatever arguments I pass to
xmllint and over-writes the original in-place.
I've called my version of this file
prettify.sh, and when it's in the path you can invoke it like this:
[craigf@eleanor ~]prettify.sh *.xml
Update: I should've mentioned that
xmllint is part of the
libxml2 package. It should be available on most Linux distributions.
blog comments powered by Disqus