xsl-list
[Top] [All Lists]

RE: Attempt to Select from the Top of Document No Worky

2003-12-08 15:36:12
Nothing wrong with the code that I can see. Perhaps it's something to do
with namespaces. Cut it down to a small example that shows the problem,
and then show us the full XML and XSL.

Incidentally, your code:

    <xsl:for-each 
select="//textStyle[(_at_)name=$styleName]/inlineAttr/@*">
      <xsl:attribute name="{local-name(.)}">
      <xsl:value-of select="."/>
      </xsl:attribute>
    </xsl:for-each>

is equivalent to 

<xsl:copy-of select="//textStyle[(_at_)name=$styleName]/inlineAttr/@*"/>

unless you are doing something very odd with namespaces.

Michael Kay


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Kyle Partridge
Sent: 08 December 2003 21:07
To: XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Attempt to Select from the Top of Document No Worky


Hi,

I've searched high and low for the answer to this
problem...to no avail...so I'll be quick.  I've got a
pretty complicated xml document...lots of nodes.

I'm matching a paragraph, and I want to style it.  the 
structure is something like:

<p style="blah">stuff in here</p>

Someplace else, far above, the "blah" style is
defined, in a node pretty well nested:

<presentationSettings>
 <textRendering>
  <textStyles>
   <textStyle name="Normal">
    <blockAttr indent-left="0" indent-right="0"
text-indent="0" text-align="left"
list-style-type="none" tabs="0.5 1.0 1.2"/>
    <inlineAttr font-family="Arial" font-size="10" 
font-weight="normal" font-style="normal" 
font-charset="Western" text-decoration="none" 
vertical-align="baseline" color="#000"/>
   </textStyle>
   ...lots and lots more stuff before the preceeding
tags close...

I tried to use this template to get the style
information to apply to each paragraph, but it doesn't
work.

<xsl:template match="ws:p">
  <xsl:element name="fo:block">
    <xsl:variable name="styleName" select="@style"/>
    <xsl:for-each 
select="//textStyle[(_at_)name=$styleName]/inlineAttr/@*">
      <xsl:attribute name="{local-name(.)}">
      <xsl:value-of select="."/>
      </xsl:attribute>
    </xsl:for-each>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>

Maybe the reason is that // doesn't work inside of my
existing query (ws:p), but what can I do to get the
values I'm looking for?

Many thanks,
KP



__________________________________
Do you Yahoo!?
Free Pop-Up Blocker - Get it now
http://companion.yahoo.com/

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list