473,549 Members | 2,583 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

asp.net/XSl question

I have a xml file and i want to format it using XSL
I needed to do a distinct which is ok on the first node "Code"
But when it gets to the "programDescrip tion" node it prints out values for
both Code="PRG004"
and PRG005 which is CrazyTraining 2 and Program6
I want CrazyTraining 2 for PRG004 and Program6 for PRG005
Any help?
Thx
XSL file
--------
<xsl:styleshe et version="1.0"
xmlns:xsl="http ://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" />
<!--
Get distinct programs into variable
//-->
<xsl:variable name="uniqueCod e"
select="//ProgramDetail[not(Code=preced ing-sibling::Progra mDetail/Code)]/Cod
e"/>
<xsl:variable name="uniquePro gramDesc"
select="//ProgramDetail[not(programDesc ription=precedi ng-sibling::Progra mDet
ail/programDescript ion)]/programDescript ion"/>

<xsl:variable name="uniqueCou rsecode"
select="//ProgramDetail[not(CourseCode= preceding-sibling::Progra mDetail/Cour
seCode)]/CourseCode"/>
<xsl:variable name="uniqueCou rseDesc"
select="//ProgramDetail[not(CourseDescr iption=precedin g-sibling::Progra mDeta
il/CourseDescripti on)]/CourseDescripti on"/>
<xsl:variable name="uniqueMod uleCode"
select="//ProgramDetail[not(ModuleCode= preceding-sibling::Progra mDetail/Modu
leCode)]/ModuleCode"/>
<xsl:variable name="uniqueMod uleDesc"
select="//ProgramDetail[not(uniqueModul eDesc=preceding-sibling::Progra mDetai
l/uniqueModuleDes c)]/ModuleCode"/>


<!--
Reflect to root node and form the HTML page
//-->
<xsl:template match="/">
<html>
<head>
<title>
Programs to be sent
</title>
</head>
<body>
<table border="1">
<tr>
<td><b>Code</b></td>
<td><b>Counts </b></td>
<td><b>Progra m Description</b></td>
<td><b>Course Code</b></td>
<td><b>Course Description</b></td>
</tr>
<!--
Process specified template
//-->
<xsl:call-template name="processpr ogramdetail"/>
<xsl:call-template name="processpr ogramdetail2"/>

<!--
<xsl:call-template name="processpr ogramdetail3"/>
<xsl:call-template name="processpr ogramdetail4"/>
<xsl:call-template name="processpr ogramdetail5"/>

-->
</table>
<table border="1">
<tr>
<td>
<xsl:call-template name="processpr ogramdetail3"/>
</td>

<td>
<xsl:call-template name="processpr ogramdetail4"/>
</td>

<td>
<xsl:call-template name="processpr ogramdetail5"/>
</td>

</tr>
</table>

</body>
</html>
</xsl:template>

<xsl:template name="processpr ogramdetail">

<!--
Process each distinct Code
//-->
<xsl:for-each select="$unique Code">
<!--
Sort by manufacturer
//-->
<xsl:sort select="." />

<!--
Output the Codes into first row
//-->
<tr>
<td><xsl:valu e-of select="." /></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
</tr>

<!--
Gets all program Desc listed
//-->
<xsl:variable name="programDe scription"
select="//ProgramDetail[code=current()]/programDescript ion" />

<tr>
<td><xsl:text>& #xa0;</xsl:text></td>
<!--
Output count of ProgramDescript ion
//-->
<td valign="top">
<xsl:value-of select="count($ programDescript ion)" /></td>

<td valign="top">
<!--
Process Program Description and print them out
//-->
<xsl:for-each select="$unique ProgramDesc">
<xsl:sort select="." />
<xsl:value-of select="current ()" /><br/>
</xsl:for-each>
</td>


</tr>


<tr>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td valign="top">
<!--
Process Program description print them out
//-->
<!--
<xsl:for-each select="$progra mDescription">
-->
<xsl:for-each select="$unique Coursecode">

<xsl:sort select="." />
<xsl:value-of select="current ()" />

<br/>

</xsl:for-each>
</td>
</tr>
<tr>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td valign="top">
<!--
Process Program description print them out
//-->
<!--
<xsl:for-each select="$progra mDescription">
-->
<xsl:for-each select="$unique CourseDesc">

<xsl:sort select="." />
<xsl:value-of select="current ()" />

<br/>

</xsl:for-each>
</td>
</tr>

<xsl:variable name="owners"
select="//ProgramDetail[programDescript ion=current()]/programDescript ion" />



</xsl:for-each>

</xsl:template>

<xsl:template name="processpr ogramdetail2">

<xsl:for-each select="$unique Code">

<xsl:sort select="." />


<tr>
<td><xsl:valu e-of select="." /></td>
<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>
</tr>
<tr>
<td><xsl:text>& #xa0;</xsl:text></td>
<td>
<xsl:for-each select="$unique ProgramDesc">
<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>
</td>

<td><xsl:text>& #xa0;</xsl:text></td>
</tr>



</xsl:for-each>

<!--
<xsl:for-each select="$unique Coursecode">
<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>
<xsl:for-each select="$unique CourseDesc">
<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>

<tr>
<td><xsl:text>& #xa0;</xsl:text></td>

<td>

<xsl:for-each select="$unique Coursecode">
<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>
</td>

<td>

<xsl:for-each select="$unique CourseDesc">
<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>
</td>

<td><xsl:text>& #xa0;</xsl:text></td>
<td><xsl:text>& #xa0;</xsl:text></td>

</tr>
-->
<!--
Output the Codes into first row
//-->
</xsl:template>
<xsl:template name="processpr ogramdetail3">
<xsl:for-each select="$unique Code">

<xsl:sort select="." />
<xsl:value-of select="." /> <br/>
</xsl:for-each>

</xsl:template>

<xsl:template name="processpr ogramdetail4">
<xsl:for-each select="$unique ProgramDesc">

<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>

</xsl:template>
<xsl:template name="processpr ogramdetail5">
<xsl:for-each select="$unique CourseDesc">

<xsl:sort select="." />
<xsl:value-of select="." /><br/>
</xsl:for-each>

</xsl:template>
</xsl:stylesheet>
XML file
--------------
<?xml version="1.0" standalone="yes "?>
<?xml-stylesheet type="text/xsl" href="testemail .xsl"?>
<NewDataSet>
<ProgramDetai l>
<Code>PRG004</Code>
<programDescrip tion>Crazy Training 2</programDescript ion>
<CourseCode>MAT 01</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths For Beginners</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG004</Code>
<programDescrip tion>Crazy Training 2</programDescript ion>
<CourseCode>PHS 101</CourseCode>
<DurationHours> 36</DurationHours>
<CourseDescript ion>Physics</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
<PreReqCourseCo de>MAT234</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG004</Code>
<programDescrip tion>Crazy Training 2</programDescript ion>
<CourseCode>PHS 101</CourseCode>
<DurationHours> 36</DurationHours>
<CourseDescript ion>Physics</CourseDescripti on>
<ModuleCode>TES T103</ModuleCode>
<ModuleDescript ion>TESTMODULEW ITHLONGNAME</ModuleDescripti on>
<PreReqCourseCo de>MAT234</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>COU RSE102</CourseCode>
<DurationHours> 5</DurationHours>
<CourseDescript ion>Course for learning Courses</CourseDescripti on>
<ModuleCode>MOD ULE101</ModuleCode>
<ModuleDescript ion>Module 1</ModuleDescripti on>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 01</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths For Beginners</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
<PreReqCourseCo de>MAT01</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
<PreReqCourseCo de>MAT101</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T101</ModuleCode>
<ModuleDescript ion>Test Module</ModuleDescripti on>
<PreReqCourseCo de>PHS101</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T102</ModuleCode>
<ModuleDescript ion>TestModule2 </ModuleDescripti on>
<PreReqCourseCo de>MAT01</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T102</ModuleCode>
<ModuleDescript ion>TestModule2 </ModuleDescripti on>
<PreReqCourseCo de>MAT101</PreReqCourseCod e>
</ProgramDetail>
<ProgramDetai l>
<Code>PRG005</Code>
<programDescrip tion>Program 6</programDescript ion>
<CourseCode>MAT 234</CourseCode>
<DurationHours> 8</DurationHours>
<CourseDescript ion>Maths</CourseDescripti on>
<ModuleCode>TES T102</ModuleCode>
<ModuleDescript ion>TestModule2 </ModuleDescripti on>
<PreReqCourseCo de>PHS101</PreReqCourseCod e>
</ProgramDetail>
</NewDataSet>
Feb 23 '06 #1
0 1069

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
3086
by: Mohammed Mazid | last post by:
Can anyone please help me on how to move to the next and previous question? Here is a snippet of my code: Private Sub cmdNext_Click() End Sub Private Sub cmdPrevious_Click() showrecord
3
5009
by: Stevey | last post by:
I have the following XML file... <?xml version="1.0"?> <animals> <animal> <name>Tiger</name> <questions> <question index="0">true</question> <question index="1">true</question> </questions>
7
2638
by: nospam | last post by:
Ok, 3rd or is it the 4th time I have asked this question on Partial Types, so, since it seems to me that Partial Types is still in the design or development stages at Microsoft, I am going to ask it differently. FOUR QUESTIONS: The background: I got three (3) files
3
3066
by: Ekqvist Marko | last post by:
Hi, I have one Access database table including questions and answers. Now I need to give answer id automatically to questionID column. But I don't know how it is best (fastest) to do? table before rowID answID qryrow questionID datafield 1591 12 06e 06e 06e question 1593 12 06f 06f 06f question 1594 12 answer to the question 06f
10
3400
by: glenn | last post by:
I am use to programming in php and the way session and post vars are past from fields on one page through to the post page automatically where I can get to their values easily to write to a database or continue to process on to the next page. I am now trying to learn ASP to see if we can replace some of our applications that were written in...
10
3688
by: Rider | last post by:
Hi, simple(?) question about asp.net configuration.. I've installed ASP.NET 2.0 QuickStart Sample successfully. But, When I'm first start application the follow message shown. ========= Server Error in '/QuickStartv20' Application. -------------------------------------------------------------------------------- Configuration Error...
53
4028
by: Jeff | last post by:
In the function below, can size ever be 0 (zero)? char *clc_strdup(const char * CLC_RESTRICT s) { size_t size; char *p; clc_assert_not_null(clc_strdup, s); size = strlen(s) + 1;
56
4726
by: spibou | last post by:
In the statement "a *= expression" is expression assumed to be parenthesized ? For example if I write "a *= b+c" is this the same as "a = a * (b+c)" or "a = a * b+c" ?
2
4258
by: Allan Ebdrup | last post by:
Hi, I'm trying to render a Matrix question in my ASP.Net 2.0 page, A matrix question is a question where you have several options that can all be rated according to several possible ratings (from less to more for example). I have a question object that has two properties that contain the collections Options and Ratings. now I want this kind...
3
2541
by: Zhang Weiwu | last post by:
Hello! I wrote this: ..required-question p:after { content: "*"; } Corresponding HTML: <div class="required-question"><p>Question Text</p><input /></div> <div class="not-required-question"><p>Question Text</p><input /></div>
0
7459
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language...
0
7967
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
1
7485
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For...
1
5377
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5097
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3505
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3488
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1953
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
1
1064
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.