[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] XSL comparing nodesets by name only
Subject: Re: [xsl] XSL comparing nodesets by name only From: Brandon Ibach <brandon.ibach@xxxxxxxxxxxxxxxxxxx> Date: Mon, 15 Nov 2010 09:56:13 -0500 |
On Mon, Nov 15, 2010 at 7:34 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote: > >> > >> > I want to find out if the two nodesets share one or more elements. I >> > only want a comparison regarding their nodenames not the values of >> > the nodes. In the above example $me1 and $me2 share the name of one >> > element: and that is the element "<a/>". So my nodeset comparison >> > should return "true". >> >> In XSLT 1.0: >> >> <xsl:value-of select="name($me1) = name($me2)"/> > > Unfortunately, no. In XSLT 1.0, name($nodeset) returns the name of the first > item in the nodeset. > > I don't see any alternative to coding it as a nested loop How about a for-each for the outer loop and a predicate instead of the inner loop? <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:data="urn:data"> <xsl:output method="text"/> <data:me1> <a></a> <b/> </data:me1> <data:me2> <a>value</a> <dd></dd> </data:me2> <xsl:variable name="me1" select="document('')/*/data:me1/*"/> <xsl:variable name="me2" select="document('')/*/data:me2/*"/> <xsl:template match="/"> <xsl:variable name="matches"> <xsl:for-each select="$me1"> <xsl:if test="$me2[name(.) = name(current())]"> <xsl:value-of select="concat(name(.), ',')"/> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:choose> <xsl:when test="string($matches)"> <xsl:text>Match on </xsl:text> <xsl:value-of select="substring-before($matches, ',')"/> </xsl:when> <xsl:otherwise>No match</xsl:otherwise> </xsl:choose> <xsl:text> </xsl:text> </xsl:template> </xsl:stylesheet> -Brandon :)
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] XSL comparing nodesets by, Michael Kay | Thread | RE: [xsl] XSL comparing nodesets by, Ludwig, Michael |
Re: [xsl] XSL comparing nodesets by, Piet van Oostrum | Date | RE: [xsl] XSL comparing nodesets by, Ludwig, Michael |
Month |
Keywords