Indentare file xml
Posted: Luglio 7th, 2009 | Author: packz | Filed under: Bash, Hack, Programmazione | Commenti disabilitati su Indentare file xml
Magari dovete lavorare su file XML di una discreta dimensione e magari usare xpath per estrane info utili ai vostri scopi (uscire con jessica alba?); il casino è che magari il file XML non è formattato in maniera human readable e quindi dovreste indentarlo per capire dove cazzo si trova il nodo che ci interessa. La maniera da manovale è farlo a mano: si parte dall’inizio del file e alla fine di ogni <tag> si inserisce un "nt" e alla fine di </tag> si inserisce un newline e si toglie un TAB dalla lista (non è proprio semplice come pensavo prima di iniziare a scrivere questo post).
La soluzione finale è usare gli strumenti messi a disposizione dal W3C, cioè usare XPath e XSLT e magicamente si ottiene il risultato: salvate il codice seguente in un file indent.xml
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
e poi usando il seguente comando (apt-get install xsltproc)
$ xsltproc –novalid indent.xml <file da formattare>
otterrete dallo stdout il vostro file bello indentato. Copiato da qua. Alla prossima ciaodino (chissà chi la capisce questa)…