xml aggregator

kepioo nkammah at yahoo.fr
Mon Jul 10 08:18:41 EDT 2006


thanks a lot for the code.

It was not working the first time (do not recognize item and
existing_time --> i changed item by r[-1] and existing_time by
existing_equip).


however, it is not producing the result i expected, as in it doesn't
group by same category the elements, it creates a new block of xml


<results>
-
	<LINK id="23">
-
	<EQUIPMENT id="jr2">
-
	<TIMESTAMP id="3pm">
<data>my first value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
-
	<LINK id="23">
-
	<EQUIPMENT id="jr1">
-
	<TIMESTAMP id="3pm">
<data>my second value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
-
	<LINK id="23">
-
	<EQUIPMENT id="jr2">
-
	<TIMESTAMP id="3pm">
<data>my third value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
-
	<LINK id="24">
-
	<EQUIPMENT id="jr2">
-
	<TIMESTAMP id="3pm">
<data>my fourth value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
-
	<LINK id="25">
-
	<EQUIPMENT id="jr2">
-
	<TIMESTAMP id="3pm">
<data>my fifth value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
-
	<LINK id="25">
	<EQUIPMENT id="jr2">
	<TIMESTAMP id="4pm">
<data>my sixth value</data>
</TIMESTAMP>
</EQUIPMENT>
</LINK>
</results>



The idea behind all that is :

i want to create an xml file that'll have a XSL instructions.

The xsl will sort the entries and display something like :

Route 23:
    *jr1
        *3pm
             value
             value
             value
         *5pm
             value
             value
    *jr2
        *3pm
             value
             value
             value
         *5pm
             value
             value
Route 29
    *jr1
        *3pm
             value
             value
             value
         *5pm
             value
             value
    *jr2
        *3pm
             value
             value
             value
         *5pm
             value
             value


I know this is feasible with XSL2 , but i need something compatible
with quite old browser, and XSL2 is not even working on my comp( i
could upgrade but i cannot ask all the users to do so). That's why I
thought rearranging the xml would do it.

Do you have other idea? Do u think it is the best choice?

More information abt the application I am writing : i am parsing a
feed, extracting some data and producing reports. the application is
running on spyce, so i don't have to produce a file in output, just
print the xml to the screen and it is automatically wrting to the html
page we view.

Thanks again for your help.


Gerard Flanagan wrote:
> Gerard Flanagan wrote:
> > kepioo wrote:
> > > Hi all,
> > >
> > > I am trying to write an xml aggregator, but so far, i've been failing
> > > miserably.
> > >
> > > what i want to do :
> > >
> > > i have entries, in a list format :[[key1,value],[key2,value],[
> > > key3,value]], value]
> > >
> > > example :
> > > [["route","23"],["equip","jr2"],["time","3pm"]],"my first value"]
> > >  [["route","23"],["equip","jr1"],["time","3pm"]],"my second value"]
> > >  [["route","23"],["equip","jr2"],["time","3pm"]],"my third value"]
> > >  [["route","24"],["equip","jr2"],["time","3pm"]],"my fourth value"]
> > >  [["route","25"],["equip","jr2"],["time","3pm"]],'"my fifth value"]
> > >
> >
> > [snip example data]
> >
> > >
> > >
> > > If anyone has an idea of implemetation or any code ( i was trying with
> > > ElementTree...
> > >
> >
> > (You should have posted the code you tried)
> >
> > The code below might help (though you should test it more than I have).
> > The 'findall' function comes from here:
> >
> >     http://gflanagan.net/site/python/elementfilter/elementfilter.py
> >
> > it's not the elementtree one.
> >
>
> Sorry, elementfilter.py was a bit broken - fixed now.  Use the current
> one and change the code I posted to:
>
>     [...]
>     existing_route = findall(results, "route[@id==%s]" % routeid)
> #changed line
>     if existing_route:
>         route = existing_route[0]
>         existing_equip = findall(route, "equip[@id=='%s']" % equipid)
>         if existing_equip:
>     [...]
> 
> ie. don't quote the route id since it's numeric.
> 
> Gerard




More information about the Python-list mailing list