Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > XML > XSLT: Selecting nodes by comparing data AFTER conversion

Reply
Thread Tools

XSLT: Selecting nodes by comparing data AFTER conversion

 
 
Ryan Adler
Guest
Posts: n/a
 
      01-20-2006
I have a terrible headache from this problem. Perhaps someone can
help. My XML is formatted like this:

<events>
<event>
<starts-at>123456<starts-at/>
<event>
...
<events/>

The problem is, the starts-at field is actually a date-time, and I want
to get all events that have the same _time_, but could have different
dates. This means I first have to convert the data in that field, and
then compare it. I already have a template to convert the data to the
format I need, but how I can apply this template to all items, and then
get the items that have the same output? And how can I do this within
an XSLT page?

 
Reply With Quote
 
 
 
 
Soren Kuula
Guest
Posts: n/a
 
      01-21-2006
Ryan Adler wrote:
> I have a terrible headache from this problem. Perhaps someone can
> help. My XML is formatted like this:
>
> <events>
> <event>
> <starts-at>123456<starts-at/>
> <event>
> ...
> <events/>
>
> The problem is, the starts-at field is actually a date-time, and I want
> to get all events that have the same _time_, but could have different
> dates. This means I first have to convert the data in that field, and
> then compare it. I already have a template to convert the data to the
> format I need, but how I can apply this template to all items, and then
> get the items that have the same output? And how can I do this within
> an XSLT page?
>

Seems to me like you have to make it a two-stager: First conversion,
then grouping. Alternatively, in XSLT2.0 you can save the conversion
result (of the whole doc) into a variable, and use that as input for 2nd
sweep.

Soren
 
Reply With Quote
 
 
 
 
fischer@sofika.de
Guest
Posts: n/a
 
      01-31-2006
The tool-box <xml>cmp provides a grouping-tool xmltoxml.sh, which also
can convert date-formats.

You need a basic-control-file and a toxml-control-file for executing
toxml.sh.

basic-control-file: cmp126.xml

<events>
<event ident_att_nr="true">
<starts_at
ident_text="true"
conv_text1_in="yyyy-MM-dd-HH:mm"
conv_text1_out="HH:mm"
conv_text1_class="de.sofika.test.ConvertDate"
/>
</event>
</events>

toxml-control-file: toxml126

<events>
<starts_at ident_att_time="true"
path_att_time="/events/event/starts_at">
<event ident_att_nr="true" />
</starts_at>
</events>

example-file: test126.xml

<events>
<event nr="1">
<starts_at>2006-10-20-09:00</starts_at>
</event>
<event nr="2">
<starts_at>2006-10-20-10:00</starts_at>
</event>
<event nr="3">
<starts_at>2006-10-21-09:00</starts_at>
</event>
<event nr="4">
<starts_at>2006-08-01-10:00</starts_at>
</event>
</events>


Executing the grouping produce this result:

$ xmltoxml.sh cmp126.xml toxml126.xml test126.xml
<events>
<starts_at time='09:00'>
<event nr='1'>
</event>
<event nr='3'>
</event>
</starts_at>
<starts_at time='10:00'>
<event nr='2'>
</event>
<event nr='4'>
</event>
</starts_at>
</events>

<xml>cmp has also a comparing, sorting and merging-tool.
See http://www.xmlcmp.com

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Selecting Nodes Using Subtotal of Child Nodes renfrochris@hotmail.com XML 1 08-24-2006 12:30 AM
Text nodes and element nodes query asd Java 3 05-23-2005 10:01 AM
Looking A Nodes From Within Nodes Johnny Ooi XML 10 11-14-2004 06:55 PM
selecting nodes between other nodes Timo Nentwig XML 1 06-17-2004 04:54 AM
Reality check: Is it sensible to link XML nodes to other XML nodes in the same file? gavnosis XML 0 08-02-2003 08:22 AM



Advertisments