Jeff Kish wrote:
> xxx.xml
>
> segment speed="1"
> table1 relation="upper"
> table3 relation="upper"
>
> xxy.xml
> segment speed="2"
> table2 relation="lower"
>
>
> given this xml file set:
>
>
> document xxx.xml
>
> <area>
> <segment id="segment1" speed="1">
> <table id="table1" relation="upper" />
> <table id="table2" orientation="side" />
> <table id="table3" relation="upper" />
> </segment>
> </area>
>
>
>
>
> document xxy.xml
>
> <area>
> <segment id="segment1" speed="2">
> <table id="table1" orientation="bottom" />
> <table id="table2" relation="lower" />
> <table id="table3" orientation"top" />
> </segment>
> </area>
Here is an example XQuery,
string-join(
for $d in
collection('.?select=test20081030*.xml')[descendant::table[@relation]]
return
(tokenize(base-uri($d), '/')[last()], '',
concat('segment speed="',
$d//table[@relation]/ancestor::segment/@speed, '"'),
for $t in $d//table[@relation]
return concat($t/@id, ' relation="', $t/@relation, '"'), '')
, '
')
that returns the described result when run with Saxon 9 in a working
directory that contains the input files as test20081030nn.xml
--
Martin Honnen
http://JavaScript.FAQTs.com/