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)
/(root)
|
soap:Element
|
soap:body
|
Idresponse
|
IDresult
| ------------------------|
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'.
Cheers...Hugh
CyberSpace Industries 2000 Inc.
XML Training and Consulting
----- Original Message -----
From: "Indira Hoti" <IHoti(_at_)directdebit(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
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
Regards,
Indira
-----------xml-------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="response.xsl"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<IdResponse
xmlns="http://kkkk.com/DDiii">
<IdResult>
<UserId>hello</UserId>
<Username>there</Username>
</IdResult>
</IdResponse>
</soap:Body>
</soap:Envelope>
-----------------------------------------------------------------
--------------------xsl------------------------------------------
<?xml version='1.0'?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://directdebit.com/DDLog"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
version="1.0">
<xsl:template match="soap:Envelope/soap:Body/IdResponse/IdResult">
<HTML>
<BODY>
<table BORDER="0" align="center" width="750px" height="70px"
bgcolor="#ffffff">
<TR >
<TD colspan="5" width="47%" height="20px">
<span > User Id: </span>
<xsl:value-of
select="LogonAndGetLogByAuthenticationIdResponse/LogonAndGetLogByAuthent
icationIdResult/UserId"/>
</TD>
</TR>
<TR >
<TD colspan="5" width="47%" height="20px">
<span> User name: </span>
<xsl:value-of
select="LogonAndGetLogByAuthenticationIdResponse/LogonAndGetLogByAuthent
icationIdResult/Username "/>
</TD>
</TR>
</table>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
------output I get----------------------------
hellothere
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--