[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Thanks all for your help, but please help me to solve this problem.
<sectionID>1</sectionID>
<parentID>0</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1000</dictionaryID>
<text>Section 1</text>
</Section>
<Section>
<sectionID>2</sectionID>
<parentID>0</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1001</dictionaryID>
<text>Section 2</text>
</Section>
<Section>
<sectionID>5</sectionID>
<parentID>1</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1004</dictionaryID>
<text>Section 1.1</text>
</Section>
<Section>
<sectionID>11</sectionID>
<parentID>1</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1008</dictionaryID>
<text>Section 1.2</text>
</Section>
<Section>
<sectionID>10</sectionID>
<parentID>5</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1012</dictionaryID>
<text>Section 1.1.1</text>
</Section>
<sectionID>6</sectionID>
<parentID>2</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1005</dictionaryID>
<text>Section 2.1</text>
</Section>
<Section>
<sectionID>12</sectionID>
<parentID>2</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1009</dictionaryID>
<text>Section 2.2</text>
</Section>
My xsl:
----------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="First"/>
</xsl:template>
</xsl:stylesheet>
I am able to loop through the first part of the xml but when it comes to the second part of the subsection i am not getting that output at all.
Can anyone please please help me out.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
RE: [xsl] Conditional Assigining
Subject: RE: [xsl] Conditional Assigining From: "Sri ni" <srini75@xxxxxxxxxxx> Date: Thu, 17 May 2001 09:01:29 -0000 |
Thanks all for your help, but please help me to solve this problem.
Here is my xml section.xml ---------------- <Section>
<sectionID>1</sectionID>
<parentID>0</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1000</dictionaryID>
<text>Section 1</text>
</Section>
<Section>
<sectionID>2</sectionID>
<parentID>0</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1001</dictionaryID>
<text>Section 2</text>
</Section>
<Section>
<sectionID>5</sectionID>
<parentID>1</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1004</dictionaryID>
<text>Section 1.1</text>
</Section>
<Section>
<sectionID>11</sectionID>
<parentID>1</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1008</dictionaryID>
<text>Section 1.2</text>
</Section>
<Section>
<sectionID>10</sectionID>
<parentID>5</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1012</dictionaryID>
<text>Section 1.1.1</text>
</Section>
<Section> <sectionID>19</sectionID> <parentID>10</parentID> <bulletinID>1</bulletinID> <groupID>1</groupID> <dictionaryID>1012</dictionaryID> <text>Section 1.1.1.1</text> </Section> <Section>
<sectionID>6</sectionID>
<parentID>2</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1005</dictionaryID>
<text>Section 2.1</text>
</Section>
<Section>
<sectionID>12</sectionID>
<parentID>2</parentID>
<bulletinID>1</bulletinID>
<groupID>1</groupID>
<dictionaryID>1009</dictionaryID>
<text>Section 2.2</text>
</Section>
My xsl:
----------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates select="First"/>
</xsl:template>
<xsl:template match="First"> <!--<xsl:for-each select="Section[parentID='0']"> --> <xsl:for-each select="Section"> <xsl:variable name="ID" select="sectionID"/> <xsl:value-of select="text"/> <xsl:for-each select="../Section[parentID=$ID]"> <xsl:value-of select="text"/><br/> <xsl:variable name="ID" select="sectionID"/> <!-- currentID = <xsl:value-of select="$ID" />--> </xsl:for-each> <!-- <xsl:variable name="ID" select="sectionID"/> sectionid afterloop= <xsl:value-of select="$ID" />--> <!-- <xsl:variable name="ID" select="text"/> text afterloop = <xsl:value-of select="$ID" />-->
</xsl:for-each> </xsl:template>
</xsl:stylesheet>
CURRENT OUTPUT: ----------------- id 1 pid 0 text Section 1
id 5 pid 1 text Section 1.1
id 10 pid 5 text Section 1.1.1
id 19 pid 10 text Section 1.1.1.1
Desired Output =============== id 1 pid 0 text Section 1
id 5 pid 1 text Section 1.1
id 10 pid 5 text Section 1.1.1
id 19 pid 10 text Section 1.1.1.1
id 11 pid 1 text Section 1.2
I am able to loop through the first part of the xml but when it comes to the second part of the subsection i am not getting that output at all.
Can anyone please please help me out.
Thanks in advance, Srini
From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: RE: [xsl] Conditional Assigining Date: Wed, 16 May 2001 17:15:17 +0100
>
> <xsl:variable name="ID">-1</xsl:variable>
> <xsl:for-each select="Section[parentID='0']">
> <xsl:if test="$ID=-1">
> <xsl:variable name="ID" select="sectionID" />
> </xsl:if>
> id <xsl:value-of select="$ID"/>
>
XSLT isn't a sequential programming language, you are trying to use it as if
it were. You can't do things in one iteration of xsl:for-each that affect
subsequent iterations, because there is no such thing as "subsequent" in a
non-sequential language. (See my XSLT Programmer's Reference for an essay on
the subject...)
Instead you want something like
<xsl:for-each select="Section[parentID='0']"> <xsl:choose> <xsl:when test="preceding-sibling::Section[parentID='0']"> <xsl:value-of select="preceding-sibling::Section[parentID='0'][1]"/> </xsl:when> <xsl:otherwise>-1</xsl:otherwise> </xsl:choose> </xsl:for-each>
That works because it expresses the output as a function of the input.
Mike Kay
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
_________________________________________________________________________ Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Conditional Assigining, Jeni Tennison | Thread | Re: [xsl] Conditional Assigining, Sri ni |
Re: [xsl] nested templates?, David Carlisle | Date | Re: [xsl] How to copy the whole tre, Jeni Tennison |
Month |