Welcome to WebmasterWorld Guest from 54.205.126.164

Forum Moderators: open

Message Too Old, No Replies

Conditional statement

     
4:05 am on Oct 8, 2006 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:57
votes: 0


Hi,

I'm new to XML and I'm having issues with a simple conditional statement.

Here's the XSL side, including the conditional statement:

----------------------------------------

<?xml version="1.0"?>
<HTML xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:choose>
<xsl:when test="response/totalresults > 0">
Results <strong><xsl:value-of select="response/start"/></strong> - <strong><xsl:value-of select="response/end"/></strong>
out of <strong><xsl:value-of select="response/totalresults"/></strong> total found.
<xsl:for-each select="response/results/result">
<DIV STYLE="background-color:teal; color:white; padding:4px">
<SPAN STYLE="font-weight:bold; color:white"><xsl:value-of select="jobtitle"/></SPAN>
- <xsl:value-of select="jobtitle"/>
</DIV>
<DIV STYLE="margin-left:20px; margin-bottom:1em; font-size:10pt">
<xsl:value-of select="description"/>
<SPAN STYLE="font-style:italic">
(<xsl:value-of select="calories"/> calories per serving)
</SPAN>
</DIV>
</xsl:for-each>
</xsl:when>

<xsl:otherwise>
Sorry, we found no matches for "whatever."
</xsl:otherwise>

</xsl:choose>

</HTML>

----------------------------------------

Here's XML structure:

-----------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<response>
<query>blablabla</query>
<location>wherever</location>
<dupefilter>true</dupefilter>
<highlight>true</highlight>
<totalresults>0</totalresults>
<start>1</start>
<end>0</end>
<results />
</response>

-----------------------------------------

And of course, the error message:

-----------------------------------------

msxml3.dll error '80004005'

Expected token 'eof' found '>'. response/totalresults -->><-- 0

----------------------------------------

I would appreciate any pointers.

Thanks.

1:43 pm on Oct 8, 2006 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Nov 3, 2005
posts:1585
votes: 0


I suspect the statement

<xsl:when test="response/totalresults > 0">

try

<xsl:when test="response/totalresults!= 0">

if you need to use > suspect it needs escaping &gt; or \> maybe? Thats my guess, but not experienced in XSL.

11:02 pm on Oct 8, 2006 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:57
votes: 0


daveVk, I tried your suggestions but for some reason it still doesn't work. I'm not experienced with XSL either and it's pretty frustrating.
5:50 am on Oct 9, 2006 (gmt 0)

Senior Member

WebmasterWorld Senior Member 10+ Year Member

joined:Nov 3, 2005
posts:1585
votes: 0


[w3schools.com...] by this example you may need to wrap stylesheet within <stylesheet> and <template> tags and yes they use &gt; , eg <xsl:when test="price&gt;'10'"> why '10' and not just 10?
8:13 pm on Oct 9, 2006 (gmt 0)

Junior Member

10+ Year Member

joined:Dec 18, 2003
posts:57
votes: 0


I got it to work - I had stuff all over the place and not properly formatted... as you said it had something to do with the <stylesheet> and <template> tags being in right order.
The comparison works wine with numbers that are not enclosed within single quotes.

Thanks.

 

Join The Conversation

Moderators and Top Contributors

Hot Threads This Week

Featured Threads

Free SEO Tools

Hire Expert Members