[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Find the node name of the parent in the result tree?

Subject: Re: [xsl] Find the node name of the parent in the result tree?
From: Brian Chrisman <brchrisman@xxxxxxxxx>
Date: Fri, 22 Mar 2013 16:27:28 -0700

On Fri, Mar 22, 2013 at 2:14 PM, Martin Holmes <mholmes@xxxxxxx> wrote:
> If I have a template matching an attribute, and producing one in the output
> tree, like this:
>   <xsl:template match="@style">
>         <xsl:attribute name="style" select="."/>
>   </xsl:template>
> Is there any way to know the name of the element in the result tree which is
> the parent of the attribute being created?
> Some context: I'm turning TEI @style attributes into HTML @style attributes
> in the output, and I'd like to handle situations in which this kind of
> input:
> <hi rend="text-align: center;">Centred text</hi>
> results in output that doesn't work:
> <span style="text-align: center;">NOT centred because it's a span</span>
> If I knew the output element was a <span> or element which is inline by
> default, I could add "display: block" automatically to any @style attribute
> that contains a block-level CSS property such as text-align. I don't want to
> add "display: block" in all cases, because e.g. a <div> element might
> already have a class which floats it.
> Cheers,
> Martin

A two-stage stylesheet pipeline would work, provided that the context
you need is either *all* from the original document or *all* from the
result document (but not pieces/parts from each). (Also provided no
particular resource constraint.)
Might also be stylistically better than munging it all into one
stylesheet, if doing so separates different components of the


Current Thread