Sign Up
Search
Options
search
Chat
Help
News
Log in
Not Logged in
Home
»
Boards
»
Stylus Studio Developer Network
»
XSLT Help and Discussion
»
How to convert in multi level element (xml to xml)
Conferences
Stylus Studio Feature Requests
(1192)
Stylus Studio Technical Forum
(14621)
Website Feedback
(249)
XSLT Help and Discussion
(7625)
Getting xsl element in javascr...
(3)
The document() function inside...
(3)
Footnote text move to para
(2)
XSL: multiple element come to ...
(3)
How to use following-sibling &...
(2)
How to use FOP 0.95 with Stylu...
(4)
Error during creating PDF from...
(2)
Help creating a comma delimite...
(4)
Selective Add using XSLT recur...
(3)
Help: convert without parent e...
(2)
Correct my substring function ...
(1)
Old xsl into reports
(4)
How to save xslt converted fil...
(3)
How to find non tagging text?
(5)
Help: Hex entity to Character...
(6)
EDI QUOTES MESSAGE NEED TO REP...
(2)
How to convert in multi level ...
(4)
How to convert in multi l...
How to convert in multi l...
How to convert in multi l...
Need some help with a styleshe...
(3)
Conditional Formattinf Formula...
(1)
Creating HTML Unordered LIsts....
(2)
xslt params uknown number of i...
(2)
Previous
[361-380]
[381-400]
[401-420]
Next
XQuery Help and Discussion
(2017)
Stylus Studio FAQs
(159)
Stylus Studio Code Samples & Utilities
(364)
Stylus Studio Announcements
(113)
Topic
next
Subject:
How to convert in multi level element (xml to xml)
Author:
Selva Ganesh
Date:
01 May 2009 05:31 AM
I need below placed in the input file to output file throughout xslt conversion please help me. thanks
Input file
<reg>
<h2>Amendment</h2>
<sub1>
<p>2.</p>
<p>(2)</p>
<sub2>
<p>(a)</p>
<p>(b)</p>
<p>(c)</p>
<p>(d)</p>
</sub2>
<p>(3)</p>
<p>(4)</p>
<sub2>
<p>(a)</p>
<p>(b)</p>
<sub3>
<p>(i)</p>
<p>(ii)</p>
</sub3>
</sub2>
<p>(5)</p>
<p>(7)</p>
<p>(6)</p>
<p>(7)</p>
<p>(8)</p>
<p>(9)</p>
</sub1>
</reg>
Output file
<reg>
<ti>Amendment</ti>
<s1>
<pt>2.</pt>
</s1>
<s1>
<pt>(2)</pt>
<s2>
<pt>(a)</pt>
</s2>
<s2>
<pt>(b)</pt>
</s2>
<s2>
<pt>(c)</pt>
</s2>
<s2>
<pt>(d)</pt>
</s2>
</s1>
<s1>
<pt>(3)</pt>
</s1>
<s1>
<pt>(4)</pt>
<s2>
<pt>(a)</pt>
</s2>
<s2>
<pt>(b)</pt>
<s3>
<pt>(i)</pt>
</s3>
<s3>
<pt>(ii)</pt>
</s3>
</s2>
</s1>
<s1>
<pt>(5)</pt>
</s1>
<s1>
<pt>(7)</pt>
</s1>
<s1>
<pt>(6)</pt>
</s1>
<s1>
<pt>(7)</pt>
</s1>
<s1>
<pt>(8)</pt>
</s1>
<s1>
<pt>(9)</pt>
</s1>
</reg>
Advance thanks,
Selva
Noname(44).
next
Subject:
How to convert in multi level element (xml to xml)
Author:
John Bampton
Date:
01 May 2009 08:18 AM
Originally Posted: 01 May 2009 08:17 AM
Hello, here is the solution
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="
http://www.w3.org/1999/XSL/Transform"
xmlns:xs="
http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="2.0">
<xsl:output method="xml" indent="no"></xsl:output>
<xsl:template match="reg">
<xsl:copy>
<xsl:apply-templates></xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="h2">
<ti>
<xsl:apply-templates></xsl:apply-templates>
</ti>
</xsl:template>
<xsl:template match="sub1">
<xsl:apply-templates select="p"></xsl:apply-templates>
</xsl:template>
<xsl:template match="p">
<xsl:choose>
<xsl:when test="parent::sub1 and ( name(following-sibling::*[1]) = ( 'p','') )">
<s1>
<pt>
<xsl:apply-templates></xsl:apply-templates>
</pt>
</s1>
</xsl:when>
<xsl:when test="parent::sub1 and ( name(following-sibling::*[1]) = 'sub2' )">
<s1>
<pt>
<xsl:apply-templates></xsl:apply-templates>
</pt>
<xsl:apply-templates select="following-sibling::sub2[1]"></xsl:apply-templates>
</s1>
</xsl:when>
<xsl:when test="parent::sub2 and ( name(following-sibling::*[1]) = ( 'p','') )">
<s2>
<pt>
<xsl:apply-templates></xsl:apply-templates>
</pt>
</s2>
</xsl:when>
<xsl:when test="parent::sub2 and ( name(following-sibling::*[1]) = 'sub3' )">
<s2>
<pt>
<xsl:apply-templates></xsl:apply-templates>
</pt>
<xsl:apply-templates select="following-sibling::sub3[1]"></xsl:apply-templates>
</s2>
</xsl:when>
<xsl:when test="parent::sub3">
<s3>
<pt>
<xsl:apply-templates></xsl:apply-templates>
</pt>
</s3>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="sub2">
<xsl:apply-templates select="p"></xsl:apply-templates>
</xsl:template>
<xsl:template match="sub3">
<xsl:apply-templates select="p"></xsl:apply-templates>
</xsl:template>
</xsl:stylesheet>
Cheers, John Bampton.
next
Subject:
How to convert in multi level element (xml to xml)
Author:
Selva Ganesh
Date:
03 May 2009 07:49 AM
Hi John Bampton,
Thank you very much
Selva
top
Subject:
How to convert in multi level element (xml to xml)
Author:
Selva Ganesh
Date:
03 May 2009 07:51 AM
Hi John Bampton,
Thank you very much
Selva
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 to Conference:
Select Conference
Stylus Studio Feature Requests
Stylus Studio Technical Forum
Website Feedback
XSLT Help and Discussion
XQuery Help and Discussion
Stylus Studio FAQs
Stylus Studio Code Samples & Utilities
Stylus Studio Announcements
go
Log In Options
Username:
Password:
Site Map
|
Privacy Policy
|
Terms of Use
|
Trademarks
Stylus Scoop XML Newsletter:
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.