Hi Trevor,
Probably you want something like
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" />
<xsl:template match="/root">
<xsl:apply-templates select="a" />
</xsl:template>
<xsl:template match="a">
<xsl:if test="not(@*) and not(node())">
<xsl:value-of select="position()" /> empty element
</xsl:if>
<xsl:if test="@* and not(node())">
<xsl:value-of select="position()" /> only attributes
</xsl:if>
<xsl:if test="not(@*) and node()">
<xsl:value-of select="position()" /> no attribute, but has child nodes
</xsl:if>
<xsl:if test="@* and node()">
<xsl:value-of select="position()" /> has attribute and also child nodes
</xsl:if>
</xsl:template>
</xsl:stylesheet>
The XML I used is
<root>
<a></a>
<a docref="123456"/>
<a>some text</a>
<a case="2"><elementary>my dear Watson</elementary></a>
</root>
This is just a dummy example to illustrate the concept. I have used
position() function to see for which "a" node the output is coming.
Regards,
Mukul
On 8/28/05, Trevor Nicholls <trevor(_at_)castingthevoid(_dot_)com> wrote:
Hello
Is there a concise test for the context node that will distinguish between a
node that has attributes at most:
<a><a/>
<a docref="123456"/>
and a node that has more than attributes?
<a>some text</a>
<a case="2"><elementary>my dear Watson</elementary><a/>
I have been inadvertently dropping a few dozen of the latter type in trying
to clean up several thousand of the former in my input documents.
Cheers
Trevor
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--