xsl-list
[Top] [All Lists]

RE: [xsl] XSL comparing nodesets by name only

2010-11-15 10:43:10
-----Original Message-----
From: Michael Kay [mailto:mike(_at_)saxonica(_dot_)com] 

I don't see any alternative to coding it as a nested loop

<xsl:variable name="matches">
<xsl:for-each select="$me1">
<xsl:for-each select="$me2">
<xsl:if test="name($me1) = name($me2)">yes</xsl:if>
</
</
</

Maybe two keys:

D:\Temp :: more /t2 me.xml
<data:root xmlns:data="da.ta">

<data:me1>
<a></a>
<b/>
</data:me1>

<data:me2>
<a>value</a>
<dd></dd>
</data:me2>

</data:root>

D:\Temp :: more /t2 me.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
  xmlns:data="da.ta"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>

  <xsl:output encoding="ISO-8859-1" indent="yes"/>

  <xsl:key name="me1" match="data:me1/*" use="name()"/>
  <xsl:key name="me2" match="data:me2/*" use="name()"/>

  <xsl:template match="/*">
    <data:out>
      <xsl:for-each select="data:me1/*">
        <xsl:if test="key( 'me2', name() )">yes</xsl:if>
      </xsl:for-each>
    </data:out>
  </xsl:template>

</xsl:stylesheet>

D:\Temp :: msxsl me.xml me.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<data:out xmlns:data="da.ta">yes</data:out>

-- 
Michael Ludwig

--~------------------------------------------------------------------
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>
--~--