XML Programming
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreXML Programming

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
  #1  
Old February 26th, 2004, 09:40 AM
Erdenemandal Erdenemandal is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2004
Location: Germany
Posts: 5 Erdenemandal User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
XSL Help

Hi,

I am beginner for XSL. I have a strange problem with variable.

<xsl:variable name="where_query" select="'WHERE 1=1'"/>
<xsl:variable name="T"/>

<xsl:if test="string-length($name) > 0">
<xsl:value-of select="concat($name, ' with IF condition')"/>
<xsl:variable name="T" select="concat($name, ' with IF Condition')"/>
</xsl:if>


<xsl:value-of select="$where_query"/>

<b> Result of IF condition -
<xsl:value-of select="$T"/>
</b>

<sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<sql:query>
SELECT * FROM PersonTest <xsl:copy-of select="$where_query"/>
</sql:query>
</sql:execute-query>


For example default value of T variable is Empty. When User type something in Name field , I want to put it inside in Query. But I can't change Variable value.

When a length of Name is more than 0 can saw "Name" + "with IF condition". But not in the variable.!!!!


Please send my your comment,


Thanks,
Erdenemandal

Reply With Quote
  #2  
Old February 26th, 2004, 02:57 PM
MattSidesinger's Avatar
MattSidesinger MattSidesinger is offline
Java PHP Oracle Developer
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2004
Location: C-Bus OH-IO
Posts: 204 MattSidesinger User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: 15 m 26 sec
Reputation Power: 5
Send a message via AIM to MattSidesinger
You can only assign a value to a variable once in XSL. If you want to assign a value to a variable using a conditional you must do something like:
Code:
<xsl:variable name="test">
     <xsl:choose>
          <xsl:when test="...">
               .....
          </xsl:when>
          <xsl:otherwise>
               ...
          </xsl:otherwise>
     </xsl:choose>
</xsl:variable>

There are other way too, let me know if something like above does not work.

Reply With Quote
  #3  
Old February 27th, 2004, 02:44 AM
Erdenemandal Erdenemandal is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2004
Location: Germany
Posts: 5 Erdenemandal User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Thanks,

I saw also reference of XSL. It was written "Variable is not real variable. It is constant."

Than I search another way.

Reply With Quote
  #4  
Old February 27th, 2004, 03:47 AM
Erdenemandal Erdenemandal is offline
Registered User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jan 2004
Location: Germany
Posts: 5 Erdenemandal User rank is Just a Lowly Private (1 - 20 Reputation Level) 
Time spent in forums: < 1 sec
Reputation Power: 0
Problem solved

Hi,

I just use simple method "When". Also I feel XSL is not so strong for programming !. It I am wrong, let me correct

Code:
<xsl:variable name="myname" select="translate($name,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
	<xsl:variable name="myvorname" select="translate($vorname,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>
	
     	<xsl:choose>
     		<xsl:when test="string-length($myname) and string-length($myvorname)">     			
     			SELECT * FROM PersonTest WHERE upper(Name) LIKE ('%<xsl:value-of select="$myname"/>%') AND upper(VORNAME) LIKE ('%<xsl:value-of select="$myvorname"/>%')
     			<sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0"> 
				<sql:query>
				SELECT * FROM PersonTest WHERE upper(Name) LIKE ('%<xsl:value-of select="$myname"/>%') AND upper(VORNAME) LIKE ('%<xsl:value-of select="$myvorname"/>%')
				</sql:query>
			</sql:execute-query>
     		</xsl:when>
     		
     		<xsl:when test="string-length($myname)">     			
     			SELECT * FROM PersonTest WHERE Name LIKE ('%<xsl:value-of select="$myname"/>%')
     			<sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0"> 
				<sql:query>
				SELECT * FROM PersonTest WHERE upper(Name) LIKE ('%<xsl:value-of select="$myname"/>%')
				</sql:query>
			</sql:execute-query>
     		</xsl:when>
     		
     		<xsl:when test="string-length($myvorname)">     			
     			SELECT * FROM PersonTest WHERE VORNAME LIKE ('%<xsl:value-of select="$myvorname"/>%')
     			<sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0"> 
				<sql:query>
				SELECT * FROM PersonTest WHERE upper(VORNAME) LIKE ('%<xsl:value-of select="$myvorname"/>%')
				</sql:query>
			</sql:execute-query>
     		</xsl:when>
     		
     		<xsl:otherwise>     			
     			<sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0"> 
				<sql:query>
				SELECT * FROM PersonTest
				</sql:query>
			</sql:execute-query>
     		</xsl:otherwise>
     	</xsl:choose>


At least it is working,

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreXML Programming > XSL Help


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 1 hosted by Hostway
Stay green...Green IT