[xquery-talk] Xquery+ reduce two docs into one
David Carlisle
davidc at nag.co.uk
Sat Jan 13 00:58:55 PST 2007
a slight tweak of the code I suggested seems to produce the desired
result (I hadn't allowed for multiple value2 with the same value1)
<FF>
{doc('doc1.xml')/FNumber/meta[FileName=doc('doc2.xml')/FocalLength/meta/FileName]/
(
let $f := FileName
return
doc('doc2.xml')/FocalLength/meta[FileName=$f]/Value1/
<meta>
{(.,$f/../Value2,
../FileName[.=$f])}
</meta>
)}
</FF>
$ saxon8q docmerge.xq
<?xml version="1.0" encoding="UTF-8"?>
<FF>
<meta>
<Value1>70.0mm</Value1>
<Value2>8.0</Value2>
<FileName>file11</FileName>
</meta>
<meta>
<Value1>55.0mm</Value1>
<Value2>6.3</Value2>
<FileName>file12</FileName>
</meta>
<meta>
<Value1>6.13mm</Value1>
<Value2>5.6</Value2>
<FileName>file6</FileName>
</meta>
<meta>
<Value1>6.0mm</Value1>
<Value2>4.9</Value2>
<FileName>file3</FileName>
</meta>
<meta>
<Value1>5.7mm</Value1>
<Value2>4.9</Value2>
<FileName>file2</FileName>
</meta>
<meta>
<Value1>7.90mm</Value1>
<Value2>4.0</Value2>
<FileName>file1</FileName>
</meta>
<meta>
<Value1>10.0mm</Value1>
<Value2>4.0</Value2>
<FileName>file10</FileName>
</meta>
<meta>
<Value1>5.7mm</Value1>
<Value2>2.9</Value2>
<FileName>file4</FileName>
<FileName>file5</FileName>
</meta>
<meta>
<Value1>7.90mm</Value1>
<Value2>2.8</Value2>
<FileName>file7</FileName>
<FileName>file8</FileName>
<FileName>file9</FileName>
<FileName>file14</FileName>
<FileName>file15</FileName>
<FileName>file16</FileName>
<FileName>file17</FileName>
<FileName>file18</FileName>
<FileName>file19</FileName>
</meta>
<meta>
<Value1>12.0mm</Value1>
<Value2>16.0</Value2>
<FileName>file13</FileName>
</meta>
</FF>
More information about the talk
mailing list