> I'm attempting to use XSL to transform XML to XML. The
> problem is that
> some child elements in the original XML are "attributes" of
> the new XML
> element, whereas other child "elements" are actually new
> child elements.
> That is:
>
> BEFORE:
> <test type="positive" name="Test 1">
> <param name="p1">123</param>
> <param name="date1">July 9</param>
> <param name="p2">false</param>
> </test>
>
> AFTER:
> <da:Positive name="Test 1" p1="123" p2="false">
> <da:Date number="1" value="July 9"/>
> </da:Positive>
>
> (Notice that p1 and p2 become attributes of the new element,
> but date1
> becomes a new child element.)
>
> From what I can tell, I need to accomplish the equivalent of the
> following, but haven't been able to come up with the way to do it:
>
> (1) Iterate through all original <param>s. For each <param> that will
> become an attribute, do <xsl:attribute>. For each <param>
> that will become
> a child element, store it off to the side in a node set of some sort.
>
> (2) When the iteration is complete, iterate through the node
> set built in
> (1), and do <xsl:element> on each.
>
A simpler approach is to iterate through the original params twice; the
first time, select those that will become attributes, the second time,
select those that will become child elements.
Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|
Michael Kay - Wed, 10 Jul 2002 04:06:12 -0400 (EDT) <=
Jay Burgess - Wed, 10 Jul 2002 10:52:18 -0400 (EDT)
|
|