[xsl] delete empty elements

Subject: [xsl] delete empty elements
From: Michael Zehrer <zehrer@xxxxxxxxxxxxxxxxxx>
Date: Mon, 2 Jul 2001 12:47:06 +0200
Hi list,

I have XML like this:

<page>
	<element id="86">data</element>
	<element id="23"></element>
	<element id="56">moredata</element>
	<element id="89">muchmoredata</element>
	...
</page>

And, with help from the FAQ and the list :-), I'm able to sort this in a
balanced two column table. But how can I sort out these empty
<element></element> Tags in my xsl?

<xsl:variable name="t-size" select="count(//element)"/>
<xsl:variable name="half" select="ceiling($t-size div 2)"/>
		   
<table>
	<xsl:for-each select="//element[position() &lt;= $half]">
	<xsl:variable name="here" select="position()"/>
	<tr>
		<td>
			<xsl:value-of select="@id"/>
		</td>
		<td>
			<xsl:value-of select="."/>
		</td>
		<td>
			<xsl:value-of select="../element[$here+$half]/@id"
/>
		</td>
		<td>
			<xsl:choose>
				<xsl:when test="../element[$here+$half]">
					<xsl:value-of
select="../element[$here+$half]"/>
				</xsl:when>
			</xsl:choose>
		</td>
	</tr>
	</xsl:for-each>
</table>

Regards, Michael


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread