[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] insert default node if it doesn't exist
I always have trouble with xslt when processing something once: Ia certain child doesn't exists, I'd like to insert a default value: Like the one below. The 2nd 'a' should after processing include a <c>0</c> (since it doesn't have it). before: <data> <a> <b>100</b> <c>120</c> </a> <a> <b>100</b> <g>300</g> </a> </data> after: <data> <a> <b>100</b> <c>120</c> </a> <a> <b>100</b> <g>300</g> <c>0</c> </a> </data> I've tried with this XSLT. Problem is that since the match doesn't find <c> for the 2nd both for b and g, I'll get a <c> for everyone of them. How can this be solved? <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="a/*"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> <xsl:if test="not(../c)"> <c>0</c> </xsl:if> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> </xsl:stylesheet> /Thomas 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
|