Molko
asked on
XSLT- Trying to negate a String() function
I have attached some XSLT code, the code is fairly repetitive in that a a template i have replaced with the comment <!--DO STUFF1() --> is called in two places.
I think I could improve the code by using a negating my NOT condition, but I cant seem to make it work properly.
I want to try and say <xsl:when test="
string(substring-after(sub string-aft er($path, '\'), '\')) "> OR'ed with <xsl:when test="string(substring-aft er($path, '\')) ">
And help would be greatly received.
Even if its a complete restructure of the code.
Thanks
I think I could improve the code by using a negating my NOT condition, but I cant seem to make it work properly.
I want to try and say <xsl:when test="
string(substring-after(sub
And help would be greatly received.
Even if its a complete restructure of the code.
Thanks
<xsl:choose>
<xsl:when test="starts-with($path,'\')"> <!-- Starts with \ - e.g \abc\def\ghi -->
<xsl:choose>
<xsl:when test="not (string(substring-after(substring-after($path, '\'), '\'))) ">
<!--DO STUFF1() -->
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="xxx">
<xsl:with-param name="$path" select="substring-after(substring-after($path, '\'), '\')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:when>
<xsl:otherwise> <!-- Doesn't start with \ - e.g abc\def\ghi-->
<xsl:choose>
<xsl:when test="not (string(substring-after($path, '\'))) ">
<!--DO STUFF1() -->
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="xxx">
<xsl:with-param name="$path" select="substring-after($path, '\')"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:otherwise>
</xsl:choose>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I realized that would be the case,
I saw that once you are sure that the possible leading "\" is gone, the processing is exactly the same
you process the bit after the first "\" if it is there, not counting the leading one
so you could first drop that
I saw that once you are sure that the possible leading "\" is gone, the processing is exactly the same
you process the bit after the first "\" if it is there, not counting the leading one
so you could first drop that
ASKER
Yes that quite correct, I also call that function recursively, so that i can iterate over the whole path. So i guess that means i will be assigning a value to $path2 every time - I suppose i can move the variable outside the function call ?
yes, move it outside the function call
ASKER
Thanks
welcome
ASKER
c:\window\temp or
\server\temp
hence the conditional processing