XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Kalyan TummalaSubject: Yet another problem
Author: Kalyan Tummala
Date: 02 Apr 2008 03:04 PM
Hi all

I had a problem earlier and it was solved. I have another one now. Here it is

In the XML file given below I have 2 nodes namely "address/name" and "address/campus/name". Both are mutually exclusive. I mean if there is a value in address/name there wont be any value in address/campus/name

But I need to get all of these values under one coloumn in my CSV sheet.

So here was the code I wrote in my XSL

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">

<xsl:variable name="separator" select="','"/>

<xsl:value-of select="concat('AicID', $separator, 'PROGRAMID', $separator, 'PROGTITLE', $separator, 'PROGLOC', $separator, 'LOCATION', $separator, 'PROGADDR', $separator, 'CITY', $separator, 'STATE', $separator, 'ZIP', $separator, 'UPDATEDATE', $separator, 'PROGURL', $separator, 'IMPACTAREA', $separator, 'LONGITUDE', $separator, 'LATITUDE' )"/><xsl:text>
</xsl:text>

<xsl:variable name="quot" select="'&quot;'"/>

<xsl:for-each select="xmlServiceResponse/body/searchResults/programLocation">


<xsl:value-of select="concat(position(), $separator, programSeries/@uid, $separator, $quot, title, $quot, $separator, address/@uid, $separator, $quot, ADDRESS/NAME | ADDRESS/CAMPUS/NAME, $quot, $separator, address/buildingNumber, $separator, address/city, $separator, address/state, $separator, address/postalCode, $separator, @momentModified, $separator, url, $separator, primaryImpactArea/impactArea/name, $separator, address/geoposition/@longitude, $separator, address/geoposition/@latitude)"/><xsl:text>
</xsl:text>


</xsl:for-each>


</xsl:template>
</xsl:stylesheet>


(Required code put in caps)

My problem is that, in my CSV sheet I get only the values of "address/name" and the rows that are supposed to have the "address/campus/name" are remaining empty.

Could some one direct me on how to get that. Help will be greatly appreciated.


Unknownabc(2).xml
A big XML file

Postnext
(Deleted User) Subject: Yet another problem
Author: (Deleted User)
Date: 02 Apr 2008 03:37 PM
Hi,
you can define a variable like this inside the for-each loop

<xsl:variable name="name">
<xsl:choose>
<xsl:when test="string-length(address/name)>0"><xsl:value-of select="address/name"/></xsl:when>
<xsl:otherwise><xsl:value-of select="address/campus/name"/></xsl:otherwise>
</xsl:choose>
</xsl:variable>

and then use $name in the concat function call.

Hope this helps,
Alberto

Posttop
Kalyan TummalaSubject: Yet another problem
Author: Kalyan Tummala
Date: 04 Apr 2008 01:25 PM
Thank you so much. That worked like a charm.

I thought of using variable assignment before but dint know exactly how to use it as the variable assignment in XSLT is different form that of C or C++

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.