RE: [xsl] Test for node name and attribute value

Subject: RE: [xsl] Test for node name and attribute value
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Tue, 30 Nov 2004 11:59:20 +0000
From: "Robert Soesemann" <rsoesemann@xxxxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: [xsl] Test for node name and attribute value
Date: Tue, 30 Nov 2004 12:51:53 +0100

Hello

I am stuck with the following node set expression.
In an external document I want to find the element which name is
'anchor' and which attribute @name has the value
of the variable $anchor.

I tried the following expression:

  ...
1 <xsl:for-each ...>
  ...
2 <xsl:variable name="anchor" select="@anchor"/>
3 <xsl:variable name="anchor-node" select="$external-doc//node()[name()
= 'my-anchor' and @name = $anchor]" />
  ...
4 </xsl:for-each>

--

By the way can remove line 2 and just rewrite line 3 to...?

3 <xsl:variable name="anchor-node" select="$external-doc//node()[name()
= 'my-anchor' and @name = @anchor]" />

Best regards,

Robert

Looks fine except that you said r=the name was "anchor" in the first bit but you are testing against "my-anchor" in the second paart, you can also, I believe, just search elements instead of all nodes by using:
select="$external-doc//*[name() = 'my-anchor' and @name = @anchor]"


--

Joe

Current Thread