xsl-list
[Top] [All Lists]

[xsl] Subtree Transformation

2007-03-15 04:37:21
Hello,

I am wondering if it is possible to change a subtree of an XML tree whose structure is not always the same. For example, the input XML can look like

<a>
  <b>
    <c id="1"/>
  </b>
</a>

I want to add some more "<c>" tags as children of the "<b>" tag to get something like this:

<a>
  <b>
    <c id="1"/>
    <c id="2"/>
    ...
  </b>
</a>

If the input would always look like this I would write a stylesheet that looks like the following:

<xsl:stylesheet match="/">
<a>
  <b>
    <xsl:copy-of="/a/b/c"/>
    <c id="2"/>
    <c id="3"/>
  </b>
</a>

But how can I add further siblings to "<c>" if the preceding nodes differ and if there are more tags below the closing "</b>" like in this example:

<a>
  <b>
    <bb>
      <bbb/>
    </bb>
    <c id="1"/>
  </b>
  <d>
     <e/>
     ...
  </d>
</a>


I need to copy everything and add some additional "<c>" tags. I dont't know how to do that becase with xsl:copy-of I can copy the whole tree but it can not be changed and if I iterate trough the tree with xsl:copy every tag is immideately closed. It would be nice if someone could help.

Regards,
Garvin

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