xsl-list
[Top] [All Lists]

Copy all following-siblings but when node x appears do y

2005-02-08 14:13:38


Okay, 
I've gotten a lot accomplished with the last two questions I had and
have managed to figure out how to break out my XML in various ways I
need it.  But I'm stuck again and am unable to find an example to help
me.

So, I start with:
<ConstantRoot>
  <Constant2>
        <A>
        <B>
        <Break/>
        <C>
        <Special>...</Special>
        <D>
  </Constant2>
</ConstantRoot>

And need to come out with:
<ConstantRoot>
  <Constant2>
        <A>
        <B>
        <Break/>
  </Constant2>
</ConstantRoot>
<ConstantRoot>
  <Constant2>
        <C>
        <Special attrib="N">(first 100 characters of the original
node)</Special>
        <D>
  </Constant2>
</ConstantRoot>
<ConstantRoot>
  <Constant2>
        <Special attrib="Y">(everything but the first 100 characters of
the original node)</Special>
  </Constant2>
</ConstantRoot>

I am able to get the First and Third ConstantRoot nodes to appear the
way I wish, but am having no luck with the Second one.

What kind of matching/xpath do I need to do to get it right?  I've tried
the <xsl:copy-of
select="Break/following-siblings::*/><xsl:apply-templates
select="Special"/>  but that is returning me something along the lines
of:

<ConstantRoot>
  <Constant2>
        <C>
        <Special>
        <D>
        <Special attrib="N">(first 100 characters of the original
node)</Special>
  </Constant2>
<ConstantRoot>

And that isn't what I am trying to achieve.  The only known node names
are ConstantRoot, Constant2, Break, and Special.  Any number of children
nodes can be contained within Constant2, but Break will always be
somewhere before Special.

Thank you again for all your help,
Becky

--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>