Thanks Wendell,
Writing it that way makes a lot more sense--my xsl
sheets are littered with the literal
descendants/parent/child notations. The way you
mentioned makes it easier to see what's going on.
I'm trying to retain the original attributes from the
figure match and the following code seems to work,
although I haven't seen many instances with two
copy-of's in a row--do you know if this is okay
practice?:
<xsl:template match="figure[./title/indexterm]">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:copy-of select=".//indexterm"/>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
It seems preferable than recreating each attribute
(some are custom) with the <attribute> tag. Anyways
thanks for all your help!
Naomi
Hi Naomi,
At 04:27 PM 11/9/2004, you wrote:
I used a modification of the provided example to try
and move indexterms from inside /figure/title to just
above the title, but I seem to be losing my figure
attributes like id and role (because of a shallow
copy?)--doing it this way also for some reason takes
another indexterm from earlier in the xml file and
puts it right before the one I want moved (this, I
have no clue about):
<xsl:template
match="figure[child::title[child::indexterm]]">
<xsl:copy>
<xsl:copy-of select="//indexterm"/>
"//indexterm" translates to
"/descendant-or-self::node()/child::indexterm",
meaning all indexterms in the document, which is why
you get them.
You want ".//indexterm", which collects all the
indexterms inside the
context node.
Not a big deal, but the conventional way to write your
match expressions
would probably be
match="figure[./title/indexterm]"
(short for
child::figure[self::node()/child::title/child::indexterm])
and
match="figure/title/indexterm"
(instead of
match="indexterm[parent::title[parent::figure]]")
They work the same as yours but are a bit easier to
read for the XPath-fluent.
Cheers,
Wendell
======================================================================
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>
--+--
__________________________________
Do you Yahoo!?
Check out the new Yahoo! Front Page.
www.yahoo.com