RE: [xsl] XPath: all elements with only non-parent children with identical style attr

Subject: RE: [xsl] XPath: all elements with only non-parent children with identical style attr
From: "Chris Bayes" <chris@xxxxxxxxxxx>
Date: Wed, 12 Dec 2001 00:27:46 -0000
Tobi,
Not sure exactly what you want but I guess this will do
<xsl:template match="foo">
	<xsl:if test="(count(*) = count(*[@style =
current()/*[1]/@style])) and not(*[node()])">
		<xsl:copy-of select="." />
	</xsl:if>
</xsl:template>
Using this xml
<root>
   <foo>
    <bar style="baz"/>
    <blah style="baz"/>
    <blam style="baz"/>
    <blam style="baz" />
   </foo>
   <foo>
    <bar style="baz"/>
    <blah style="baz"/>
    <blam style="baz"/>
    <blam style="baz">
    	<z />
    </blam>
   </foo>
  <foo>
    <bar style="baz"/>
    <blah style="baz"/>
    <blam style="baz"/>
    <blam style="baz">
    	<!---->
    </blam>
   </foo>
  <foo>
    <bar style="bish"/>
    <blah style="baz"/>
    <blam style="baz"/>
    <blam style="baz">
    	<z />
    </blam>
   </foo>
  <foo>
    <bar style="baf"/>
    <blah style="baz"/>
    <blam style="baz"/>
    <blam style="baz"/>
   </foo>
</root>

Produces

<foo>
 <bar style="baz"/>
 <blah style="baz"/>
 <blam style="baz"/>
 <blam style="baz"/> 
</foo>
i.e. only the first one.

Ciao Chris

XML/XSL Portal
http://www.bayes.co.uk/xml


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


Current Thread