Re: [xsl] xsl

Subject: Re: [xsl] xsl
From: "CyberSpace Industries 2000 Inc." <csi2000@xxxxxxxxxxxxxxx>
Date: Wed, 3 May 2006 11:29:08 -0400
Indira... Your problem is that your xslt only has a single template matching on the node "Idresult" (which has two child nodes "Userid" and "Username").

You could access these by using <xsl:value-of select="UserID" /> and <xsl:value-of select="Username" /> where the XPath
in both of these mean child of Idresult.

The XPATH statements you do use have element names in them that do not exist in your XML.... hence the select statements return nothing.

For example - <xsl:value-of select="LogonAndGetLogByAuthenticationIdResponse/LogonAndGetLogByAuthenticationIdResult/UserId"/>

says you want to select the node called "Userid" that is a child of "LogonAndGetLogByAuthenticationIdResult" which in
turn is a child of "LogonAndGetLogByAuthenticationIdResponse" that is a child of your 'current node' IDresult. These do not exist in your XML.

The string you do get out is the result of the default templates kicking in - since you do not have any templates for
the root node, soap:Envelope, soap:Body or IdResponse .

Remember that the XSLT processor will read in your xml document, form up an in-memory tree of nodes (starting at the root element - with a single child node (your document node soap:Envelope)

         | ------------------------|
UserID                        Username
         |                              |
text( ) 'hello'                 text( ) 'there'

It will traverse that tree of nodes - and at each node determine whether or not you provided a template to handle that node. If not, default templates will be invoked - the result being the concatentated values of all descendent text nodes being returned - in your case 'hellothere'.

CyberSpace Industries 2000 Inc.
XML Training and Consulting

----- Original Message ----- From: "Indira Hoti" <IHoti@xxxxxxxxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Wednesday, May 03, 2006 10:47 AM
Subject: [xsl] xsl

Hi all,

I haven't got much experience with XML and I just came across a code,
like the one below, which uses 'soap: Envelope' to encapsulate data.

My problem is in getting the xsl file to display that info. At the
moment with the xsl code below I can extract some information, but its
dsisplayed in one string or line, rather than assigned to a html table
cell. Any suggestions would be appreciated. Thanks J




<?xml version="1.0" encoding="utf-8"?>

<?xml-stylesheet type="text/xsl" href="response.xsl"?>

<soap:Envelope xmlns:soap="";















<?xml version='1.0'?>







<xsl:template match="soap:Envelope/soap:Body/IdResponse/IdResult">



  <table BORDER="0" align="center" width="750px" height="70px"

<TR >

<TD colspan="5" width="47%" height="20px">

<span > User Id: </span>




<TR >

<TD colspan="5" width="47%" height="20px">

<span> User name: </span>

icationIdResult/Username "/>








------output I get----------------------------


Current Thread
  • [xsl] xsl
    • Indira Hoti - Wed, 3 May 2006 15:47:07 +0100
      • Jon Gorman - Wed, 3 May 2006 10:16:23 -0500
      • CyberSpace Industries 2000 Inc. - Wed, 3 May 2006 11:29:08 -0400 <=
      • Michael Kay - Wed, 3 May 2006 16:29:33 +0100