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

Re: Recursively traversing an outline with level gaps

Subject: Re: Recursively traversing an outline with level gaps
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 24 Mar 2010 12:03:45 -0700
Re:  Recursively traversing an outline with level gaps
Nobody needs the copyrighted files. I was asking for sample files.
This is a *class of problems* and many sample files (not only the
copyrighted ones exist). Or are you attempting to copyright all xml
files that are appropriate samples for this problem? :)

Please, do understand that by not providing well-defined problem, you
are severely decreasing the chances of somebody willing to spend their
time guessworking.



On Wed, Mar 24, 2010 at 11:58 AM, Martynas Jusevicius
<martynas.jusevicius@xxxxxxxxx> wrote:
> These are copyrighted texts, so I'm unfortunately not able to provide
them..
>
> On Wed, Mar 24, 2010 at 7:55 PM, Dimitre Novatchev <dnovatchev@xxxxxxxxx>
wrote:
>> Where are the sample Xhtml and xml documents?
>>
>> On Wed, Mar 24, 2010 at 11:51 AM, Martynas Jusevicius
>> <martynas.jusevicius@xxxxxxxxx> wrote:
>>> Hey list,
>>>
>>> I want to create a nested list (ToC) from a XHTML source, which
>>> contains @class attributes on elements.
>>> A separate document, styles.xml, contains information about styles and
>>> which outline level they belong to. @style:name matches @class in
>>> XHTML.
>>>
>>> The tricky part is, that not all styles are necessarily used in XHTML.
>>> And if they are, the outline hierarchy is not necessarily maintained
>>> -- for example, only styles with level 1, 3 and 5 can be used.
>>>
>>> How would you traverse such a structure? My approach is to do it
>>> recursively, by finding all styles for the current level, and all
>>> elements of these styles (simplified):
>>>
>>> <xsl:template match="h:*">
>>> B <xsl:param name="level" select="1"/>
>>> B <xsl:variable name="level-classes" select="key('style-by-level',
>>> $level, $styles-doc)//@style:name
>>> B <xsl:variable name="level-elements" select="key('element-by-class',
>>> $level-classes)"/>
>>> B <li>
>>> B  B <xsl:value-of select="."/>
>>> B  B <ol>
>>> B  B  B <xsl:apply-templates="$level-elements">
>>> B  B  B  B <xsl:with-param name="level" select="$level + 1"/>
>>> B  B  B </xsl:apply-templates>
>>> B  B </ol>
>>> B </li>
>>> </xsl:template>
>>>
>>> But this gives problems since levels are not necessarily consecutive.
>>> The first level can be 2, for example.
>>> I also tried iterating only through actually used levels like (1, 3,
>>> 5), but it's not a full solution either, because the level hierarchy
>>> can differ in each branch.
>>>
>>> Help appreciated.
>>>
>>> Martynas
>>> odt2epub.com
>>>
>>>
>>
>>
>>
>> --
>> Cheers,
>> Dimitre Novatchev
>> ---------------------------------------
>> Truly great madness cannot be achieved without significant intelligence.
>> ---------------------------------------
>> To invent, you need a good imagination and a pile of junk
>> -------------------------------------
>> Never fight an inanimate object
>> -------------------------------------
>> You've achieved success in your field when you don't know whether what
>> you're doing is work or play
>> -------------------------------------
>> I enjoy the massacre of ads. This sentence will slaughter ads without
>> a messy bloodbath.
>
>



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
I enjoy the massacre of ads. This sentence will slaughter ads without
a messy bloodbath.

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.