xsl-list
[Top] [All Lists]

Re: Finding and restructuring duplicate elements

2004-12-13 14:43:33
Sorry about the unclear requirement...  

A couple of things to note:
There will only be ONE <AA> with attribute id=1,
There CAN be more than one <AA> with attribute id=xxx
There will ONLY be <AA> elements with two diff. attribute ids, id=1, and id=xxx.
and, id attribute for element <A> is actually ignored.
There can be duplicate <AA> elements (duplicate id attribute) across
different <A> element, but not within same <A> element.

So, worst case scenario for source XML would be:

 <A id=1>
      <AA id=1>data1</AA>
      <AA id=2>text1</AA>
 </A>
 <A id=2>
      <AA id=1>data1</AA>
      <AA id=2>text1</AA>
      <AA id=2>text2</AA>
      <AA id=2>text3</AA>
 </A>

and the desired target:

 <A id=1>
      <AA id=1>data1</AA>
      <AA id=2>text1</AA>
 </A>

 <A id=2>
      <AA id=1>data1</AA>
      <AA id=2>text1</AA>
 </A>

 <A id=2>
      <AA id=1>data1</AA>
      <AA id=2>text2</AA>
 </A>

 <A id=2>
      <AA id=1>data1</AA>
      <AA id=2>text3</AA>
 </A>


I'm thinking of maybe creating a temp variable that will contain the
duplicate nodes within <A> and then recreate the resulting xml tree?

-dK


On Mon, 13 Dec 2004 19:58:57 -0000, Michael Kay <mike(_at_)saxonica(_dot_)com> 
wrote:

I want to transform this XML:

<A id=1>
    <AA id=1/>
    <AA id=2/>
</A>
<A id=2>
    <AA id=1>data1</AA>
    <AA id=2>text1</AA>    <<-- These two nodes to be split...
    <AA id=2>text2</AA>    <<-- These two nodes to be split...
</A>

TO:

<A id=1>
    <AA id=1/>
    <AA id=2/>
</A>
<A id=2>
    <AA id=1>data1</AA>
    <AA id=2>text1</AA>
</A>
<A id=2_1>
    <AA id=1>data1</AA>
    <AA id=2>text2</AA>
</A>

This is a rather unusual variant of the usual grouping problems. But I'm not
sure the requirements are well specified. How would you want to handle the
following, for example:

<A id=2>
     <AA id=1>data1</AA>
     <AA id=2>text1</AA>
     <AA id=2>text2</AA>
     <AA id=3>textZ</AA>
     <AA id=3>textX</AA>
     <AA id=3>textC</AA>
     <AA id=4>textV</AA>
</A>

Michael Kay
http://www.saxonica.com/



Any help/input greatly appreciated!!!


Thanks!


-daniel K

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



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



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