Subject: [xsl] Nodes get new IDs in function? From: Martynas Jusevicius <martynas.jusevicius@xxxxxxxxx> Date: Fri, 9 Apr 2010 02:15:14 +0200 |
Hey list, still struggling with the level gap-infested ToC, but I think I introduced a couple of functions, I'm now on the finish line: <xsl:function name="o2e:heading-level" as="xs:integer"> <xsl:param name="heading" as="element()"/> <xsl:value-of select="number(substring-after(local-name($heading), 'h'))"/> </xsl:function> <xsl:function name="o2e:parent-heading" as="element()*"> <xsl:param name="heading" as="element()"/> <xsl:copy-of select="$heading/preceding-sibling::h:*[self::h:h1 or self::h:h2 or self::h:h3 or self::h:h4 or self::h:h5 or self::h:h6][o2e:heading-level(.) < o2e:heading-level($heading)][1]"/> </xsl:function> The problem is, it seems that nodes returned from the parent-heading() function get different IDs than identical nodes in the source document. Is this the specified behavior, i.e. functions construct new nodes, which get new IDs? For that reason this expression won't work: following-sibling::h:*[self::h:h1 or self::h:h2 or self::h:h3 or self::h:h4 or self::h:h5 or self::h:h6][o2e:parent-heading(.) is current()] Because the IDs won't match in the 'is' operator, even though I can see the nodes are (look) identical. If I change the operator to '=' it starts giving the expected results, but it is not good enough, as there can be several heading elements with the same string value. Is it possible to retain the original ID value somehow? As for the source document, it could be any XHTML with any number and order of headings, for example: <h1 class="Heading_20_1 ">Free Culture - How Big Media Uses Technology and the Law to Lock Down Culture and Control Creativity,Lawrence Lessig</h1> <h4 class="Heading_20_4 ">Attribution</h4> <p>...</p> <h3 class="Heading_20_3 ">Preface</h3> <h4 class="Heading_20_4 ">[Preface]</h4> <p>...</p> <h3 class="Heading_20_3 ">INTRODUCTION</h3> <p>...</p> and so on Martynas odt2epub.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Total Missing documents f, Shashank Jain | Thread | Re: [xsl] Nodes get new IDs in func, David Carlisle |
Re: [xsl] Create Table, Eric J. Bowman | Date | Re: [xsl] Total Missing documents f, David Carlisle |
Month |