Ricerca tra la vecchia roba

Indentare file xml

Posted: Luglio 7th, 2009 | Author: | 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)…


Comments are closed.