[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: one line of xml to indented xml doc
Joerg Heinicke wrote: > Another indentation-stylesheet: Very close, but it emits a linefeed for the root node and before the first element's start tag. A simple xsl:if takes care of that: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output indent="no" encoding="us-ascii"/> <xsl:template match="/"> <xsl:apply-templates/> </xsl:template> <xsl:template match="node()"> <xsl:variable name="indent"> <xsl:if test="ancestor::*"> <xsl:for-each select="ancestor::*"> <xsl:text> </xsl:text> </xsl:for-each> </xsl:if> </xsl:variable> <xsl:if test="string($indent)"> <xsl:value-of select="concat(' ',$indent)"/> </xsl:if> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates select="*|text()[normalize-space()]|comment()"/> <xsl:if test="*"> <xsl:value-of select="concat(' ',$indent)"/> </xsl:if> </xsl:copy> </xsl:template> <xsl:template match="text()[normalize-space() and not(preceding-sibling::* or following-sibling::*)]"> <xsl:value-of select="normalize-space(.)"/> </xsl:template> </xsl:stylesheet> - Mike ____________________________________________________________________________ mike j. brown | xml/xslt: http://skew.org/xml/ denver/boulder, colorado, usa | resume: http://skew.org/~mike/resume/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|