Do you know why it is so? In your variable $alllanguage (created from a
RTF via node set function) you store a new document. With for-each
select="$alllanguage" you switch the context to this new document and
<xsl:variable name="articelIds" select="/page/article-list/article"/> is
evaluated in this document context, so it is searched for
/page/article-list/article and of course nothing is found.
Outside of the for-each the context is still in the original document.
Joerg
Heiko Specht wrote:
Hello Joerg,
thanks, that helped pretty very much
some things seems so strange but are really easy.
regards
Heiko
Monday, December 16, 2002, 6:46:26 PM, you wrote:
JH> Hello Heiko,
JH> Heiko Specht wrote:
Hello all Mail list users,
I have a small (no its large) problem from getting results from a
nodeset and use them in them in the xml of the document root (or what
it is called).
I have created an variable which i called "astring" giving me (i do
there a lot of string commands) what i
wanted !!
<!-- this works perfect for me -->
<xsl:variable name="alllanguage" select="xalan:nodeset($astring)/all/artname"/>
<select name="A">
<xsl:for-each select="$alllanguage">
<xsl:if test="generate-id(.) = generate-id($alllanguage[.=current()])">
<option><xsl:value-of select="normalize-space()" /></option>
</xsl:if>
</xsl:for-each>
</select><br/><br/>
<!-- end of great work -->
What i want is to check if in my xml in the path
/page/article-list/article
<xsl:for-each select="$alllanguage">
<xsl:if test="generate-id(.) = generate-id($alllanguage[.=current()])">
<!-- works -->
<xsl:value-of select="normalize-space()" />
<xsl:variable name="thisname" select="normalize-space()" />
<!-- end of works -->
<!-- i want back into my xml document but no chance -->
<xsl:variable name="articelIds" select="/page/article-list/article"/>
JH> you can simply move the variable declaration of articleIds outside of
JH> this for-each.
<xsl:for-each select="$articelIds">
<!-- there is an element in this path called articleName -->
<xsl:if test="contains(articleName, $thisname)">
<xsl:value-of select="article_id"/><br/>
</xsl:if>
</xsl:for-each>
JH> This can be simplified to
JH> <xsl:for-each select="$articleIds[contains(acrticleName, $thisname)]">
JH> <xsl:value-of select="article_id"/><br/>
JH> </xsl:for-each>
JH> Regards,
JH> Joerg
</xsl:if>
</xsl:for-each>
I have search for so long, but couldn'd find the answer.
a little help would be great. TIA
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list