[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Nested lists

Subject: Re: Nested lists
From: Michael Müller-Hillebrand <mmh@xxxxxxxxx>
Date: Fri, 1 Nov 2013 17:36:30 +0100
Re:  Nested lists
Hi Rick,

Compared to the pain using XSLT1 for a task which XSLT2 can easily handle, the
pain you have to go through if you are forced to change a nice working XSLT2
solution down to XSLT1 is a real PITA.

But anyhow, I know that sometimes we are forced to do ugly stuff. I would not
be trying to use xsl:key for that problem, as keys are more of an index across
a full document and in your situation everything depends on the order of
elements. In XSLT2 you would use xsl:for-each-group, which in XSLT1 sometimes
can be kind-of replicated by "tree walking"
<http://www.dpawson.co.uk/xsl/sect2/N4486.html#d5510e1105>.

As in your example the same class attribute value maybe used for a level 1 or
level 2 list item, it might also be a good idea to do some preprocessing,
because otherwise some XPaths may become really long. I guess I would try to
separate the logic of finding the correct list item level from the step of
adding the required <ul>.

Good luck,

- Michael


Am 31.10.2013 um 21:22 schrieb Rick Quatro <rick@xxxxxxxxxxxxxx>:

> Hi,
>
> I have this for my input XML:
>
> <body>
>  <p class="listintro">ListItem_Bullets:</p>
>  <p class="listitembullets">&#8226; Item 1</p>
>  <p class="listitembullets">&#8226; Item 2</p>
>  <p class="listitembullets">&#8226; Item 3</p>
>  <p class="normal">Paragraph within a list.</p>
>  <p class="listitembullets">&#8226; Item 4</p>
>  <p class="listitembullets">&#8226; Item 5</p>
>  <p class="listitemindented">&#8226; Item 1 indented</p>
>  <p class="listitemindented">&#8226; Item 2 indented</p>
>  <p class="listitembullets">&#8226; Item 6</p>
>  <h2>Indented list starts here:</h2>
>  <p class="listitemindented">&#8226; Item 1 indented</p>
>  <p class="listitemindented">&#8226; Item 2 indented</p>
>  <p class="listitemindented">&#8226; Item 3 indented</p>
>  <p class="normal">Paragraph within a list.</p>
>  <p class="listitemindented">&#8226; Item 4 indented</p>
>  <p class="listitemindented">&#8226; Item 5 indented</p>
>  <p class="listitemindented">&#8226; Item 6 indented</p>
> </body>
>
> I want to get this:
>
> <body>
>  <p class="listintro">ListItem_Bullets:</p>
>  <ul>
>     <li>Item 1</li>
>     <li>Item 2</li>
>     <li>Item 3</li>
>  </ul>
>  <p class="normal">Paragraph within a list.</p>
>  <ul>
>     <li>Item 4</li>
>     <li>Item 5</li>
>     <ul>
>       <li>Item 1 indented</li>
>       <li>Item 2 indented</li>
>     </ul>
>     <li>Item 6</li>
>  </ul>
>  <h2>Indented list starts here:</h2>
>  <ul>
>     <li>. Item 1 indented</li>
>     <li>. Item 2 indented</li>
>     <li>. Item 3 indented</li>
>  </ul>
>  <p class="normal">Paragraph within a list.</p>
>  <ul>
>     <li>. Item 4 indented</li>
>     <li>. Item 5 indented</li>
>     <li>. Item 6 indented</li>
>  </ul>
> </body>
>

--
Michael M|ller-Hillebrand
mmh@xxxxxxxxx

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.