Hello Ragulf,
Given XML content:
-------------------
<?xml version="1.0" encoding="UTF-8"?>
<office>
<ordered-list style-name="L1">
<list-item>
<h style-name="P1" level="1">Application:Die
application</h>
</list-item>
</ordered-list>
<ordered-list style-name="L2">
<list-item>
<ordered-list>
<list-item>
<h style-name="P3"
level="2"><s/>Processgroup:abc</h>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
<ordered-list style-name="L3">
<list-item>
<ordered-list>
<list-item>
<ordered-list>
<list-item>
<h style-name="P4"
level="3"><s/>Process:FSRenta</h>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
<ordered-list style-name="L3"
continue-numbering="true">
<list-item>
<ordered-list continue-numbering="true">
<list-item>
<ordered-list continue-numbering="true">
<list-item>
<ordered-list
continue-numbering="true">
<list-item>
<h
style-name="P5"
level="4"><s/>PanelName:AnalysisLayout<s/></h>
<p
style-name="P6">TitelIcon:xxxxx</p>
<p
style-name="P6">Titel?WWWWWWW?</p>
<p
style-name="P6">Titeldata<tab-stop/>
</p>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
<ordered-list style-name="L3"
continue-numbering="true">
<list-item>
<ordered-list continue-numbering="true">
<list-item>
<ordered-list continue-numbering="true">
<list-item>
<ordered-list
continue-numbering="true">
<list-item>
<h
style-name="P5"
level="4"><s/>PanelName:GeneralLayout<s/></h>
<p
style-name="P6">TitelIcon:xxxxx</p>
<p
style-name="P6">Titel?WWWWWWW?</p>
<p
style-name="P6">Titeldata<tab-stop/>
</p>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
<ordered-list style-name="L2">
<list-item>
<ordered-list>
<list-item>
<h style-name="P3"
level="2"><s/>Processgroup:xxx</h>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
<ordered-list style-name="L3">
<list-item>
<ordered-list>
<list-item>
<ordered-list>
<list-item>
<h style-name="P4"
level="3"><s/>Process:TestApplication</h>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</list-item>
</ordered-list>
</office>
I have created the following XSL:
---------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml"/>
<xsl:template match="office">
<layout>
<xsl:apply-templates
select="ordered-list[1]/list-item">
<xsl:with-param
name="strIndexTmp">1</xsl:with-param>
</xsl:apply-templates>
</layout>
</xsl:template>
<xsl:template match="list-item">
<xsl:param name="strIndexTmp"/>
<!-- Get the element name and assign in this variable
xx -->
<xsl:variable name="xx">
<xsl:apply-templates select="current()"
mode="getElementName"/>
</xsl:variable>
<!-- Create the element in inner level -->
<xsl:if test="$xx != '' ">
<xsl:choose>
<xsl:when test="contains($xx,':')">
<xsl:variable name="ElementName"
select="substring-before($xx,':')"/>
<xsl:variable name="attributeName"
select="substring-after($xx,':')"/>
<xsl:element
name="{$ElementName}">
<xsl:attribute
name="name"><xsl:value-of
select="$attributeName"/></xsl:attribute>
<xsl:apply-templates
select="/office/ordered-list[$strIndexTmp+1]/list-item">
<xsl:with-param
name="strIndexTmp"
select="$strIndexTmp+1"/>
</xsl:apply-templates>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="{$xx}">
<xsl:apply-templates
select="/office/ordered-list[$strIndexTmp+1]/list-item">
<xsl:with-param
name="strIndexTmp"
select="$strIndexTmp+1"/>
</xsl:apply-templates>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:if>
</xsl:template>
<!-- Template to get the value of element h -->
<xsl:template match="list-item" mode="getElementName">
<xsl:if test="h">
<xsl:value-of select="h"/>
</xsl:if>
<xsl:if test= "not(h)">
<xsl:apply-templates
select="ordered-list/list-item"
mode="getElementName"/>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
I get the following Output:
<layout>
<Application name="Die application">
<Processgroup name="abc">
<Process name="FSRenta">
<PanelName name="AnalysisLayout">
<PanelName name="GeneralLayout">
<Processgroup name="xxx">
<Process
name="TestApplication"/>
</Processgroup>
</PanelName>
</PanelName>
</Process>
</Processgroup>
</Application>
</layout>
But the expected output is:
<layout>
<Application name="Die application">
<Processgroup name="abc">
<Process name="FSRenta">
<PanelName name="AnalysisLayout">
</PanelName>
<PanelName name="GeneralLayout">
</PanelName>
</Process>
</Processgroup>
<Processgroup name="xxx">
<Process name="TestApplication"/>
</Processgroup>
</Application>
</layout>
Any help..
Thanks
Regards,
Raj
--- Arulraj <p_arulraj(_at_)yahoo(_dot_)com> wrote:
thanks for the links and suggestion..
I will do the changes to solve that problem..
Thanks
Regards,
Raj
--- Ragulf Pickaxe <ragulf(_dot_)pickaxe(_at_)gmail(_dot_)com> wrote:
Hi again,
I want to get the output in Hierarchical order
using
the text().
Here, I suggest you Google "flat to hierarchical"
+XSL.
You can also try David Pawson's site:
http://dpawson.co.uk/xsl/sect2/flatfile.html
Your solution works on a hierarchical structure,
but
alas, not a flat one.
Some following or following-sibling axis to use.
(From looking at your XML, the problem seems to be
a
little more
complicated - I refer to your "continue-numbering"
attribute).
Ragards,
Ragulf Pickaxe :-)
--~------------------------------------------------------------------
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>
--~--
__________________________________
Yahoo! FareChase: Search multiple travel sites in
one click.
http://farechase.yahoo.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>
--~--
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.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>
--~--