Subject: Re: [xsl] Getting text and non-block nodes before any block nodes From: "G. Ken Holman g.ken.holman@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sat, 13 Sep 2014 00:09:48 -0000 |
I think this is an FAQ but my situation may be slightly different. In any case, if it's an FAQ, maybe my asking it will help.
This is in a DITA context, where I can know for any element whether it is a block or not a block (because in DITA all elements have a base type that is inherently block or not block).
I have the situation where a wrapper element may contain any combination of text, non-block elements, or block elements.
I need to find either all the nodes up to the first block or determine that there are none and get the first block.
select="node()[generate-id(following-sibling::*[lc:isBlock(.)][1]) = generate-id(current()/*[lc:isBlock(.)][1])]"/>
Where the lc:isBlock() function returns true if the element provided is a DITA block element.
This seems to pass all my tests but I'm wondering if there's a better way to make this check?
I also realized that I can use the $textBeforeBlocks variable to then process any remaining blocks (because I will have already output the text before blocks):
<xsl:when test="$hasTextBeforeBlocks"> <xsl:apply-templates select="node() except($textBeforeBlocks)"/> </xsl:when>
-- Contact us for world-wide XML consulting and instructor-led training | Free 5-hour lecture: http://www.CraneSoftwrights.com/links/video.htm | Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ | G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx | Google+ profile: http://plus.google.com/+GKenHolman-Crane/about | Legal business disclaimers: http://www.CraneSoftwrights.com/legal |
--- This email is free from viruses and malware because avast! Antivirus protection is active. http://www.avast.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Getting text and non-block no, Eliot Kimber ekimber | Thread | Re: [xsl] Getting text and non-bloc, Eliot Kimber ekimber |
[xsl] Getting text and non-block no, Eliot Kimber ekimber | Date | [xsl] How to Do Random "Shuffle"?, Eliot Kimber ekimber |
Month |