[ZPT] Creating a XML resultset using ZPT?
Casey Duncan
casey@zope.com
Mon, 25 Mar 2002 12:19:26 -0700
But, are you putting multiple slides into each document? If so, then you
need to execute a SQL statment for each separate one using this
solution. That's fairly suboptimal 8^)
-Casey
Luis Lavena wrote:
> Cassey: I have a table with a filed as SlideID, that field is used to filter
> on the ZSQLMethod only the records that belong to the slide.
>
> SlideID, ParamName, ParamType, ParamValue are the fields in the table.
>
> when I call the selectSlideParams pass the SlideID as param, and the resul
> must be formatted to comply with XML (wich will be used from Flash, who
> originally call it).
>
> One solution, the best I think, is parse each row of the resultset, maybe
> using print inside a Python Script.
>
> I have resolved it, just for now (until have more time to optimize/play with
> it) in this way:
>
> <params tal:define="results here/selectSlideParams"
> tal:condition="results"><div tal:omit-tag=""
> tal:repeat="item results">
> <tal:dummy tal:replace="structure
> string:<${item/ParamName}>${item/ParamValue}</${item/ParamName}>
> " /></div></params>
>
> I know it sounds ugly (not only sounds, it is indeed) :)
>
> Using the "structure" I get the "<",">" and "</" of each XML tag.
>
> Just a solution for now.
>
> I think that using the ZPT to parse it cost more to the process, but will
> need to think a better way during this week.
>
> Thanks for your answer.
>
> Luis
>
> Casey Duncan wrote:
>
>>From what I gather, each slide might have a different number of
>>parameters? How is this working using only one table? Do you simply have
>>a non-normal table with many columns, many of which are usually null? Or
>>are there just multiple rows per slide?
>>
>>I'm going to assume the latter. In this case you will need to group on
>>each distinct slide key value. dtml-in can do this, but AFIAK,
>>tal:repeat cannot. however, it would be pretty easy to write a python
>>script which does list grouping. Basically it would just nest lists
>>together, like so (untested):
>>
>>rs = container.selectSlides(context.REQUEST)
>>key = None
>>result = []
>>group = []
>>for rec in rs:
>> if group and rec.slide_key_field != key:
>> result.append(group)
>> group = []
>> else:
>> group.append(rec)
>> key = rec.slide_key_field
>>
>>if group:
>> result.append(group)
>>
>>return result
>>
>>Then use two nested tal:repeats to generate your xml.
>>
>>hth,
>>
>>Casey
>>
>
>
> _______________________________________________
> ZPT mailing list
> ZPT@zope.org
> http://lists.zope.org/mailman/listinfo/zpt
>
>