On Fri, Jan 9, 2009 at 11:28 AM, Wendell Piez
<wapiez(_at_)mulberrytech(_dot_)com> wrote:
Actually Dimitre, as long as this is TEI as the OP stated, the pb will never
be an ancestor -- it'll always be on preceding axis. (As the OP noted in
passing, it's a milestone -- always empty. :-)
OK, then take this as solving both the current (not too precisely
stated) problem and a more difficult one, in which a <pb> can contain
text.
:)
Cheers,
Wendell
At 01:08 PM 1/9/2009, Dimitre wrote:
In XSLT 1.0 the problem is nastier and expensive, although doable. But
when
restricted to 1.0, one should keep in mind other options (such as
judicious
pre-processing) to alleviate problems either with performance or code
complexity.
It's doable because the pb can in fact be found on preceding:: (even
when
not on preceding-sibling::).
As the OP stated in his opening message,
"As far as I understand it, the main problem is that the expression I
have to construct for matching can't rely simply on the preceding:: or
ancestor:: axes since the <pb/> can really appear anywhere in the
tree."
The following XSLT 1.0 transformation has a template that correctly
matches (only) the required text nodes:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="text()"/>
<xsl:template match=
"text()
[count(preceding::text()[1]/preceding::node()
| preceding::text()[1]/ancestor::node()
)
<
count((preceding::pb[1] |
ancestor::pb[1])[last()]/preceding::node()
|
(preceding::pb[1] |
ancestor::pb[1])[last()]/ancestor::node()
)
]
...
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)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
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--