[xquery-talk] Xquery+ reduce two docs into one

Sebastian sebi-hinterwaelder at gmx.de
Sat Jan 13 01:15:38 PST 2007


JAR> That's strange, I got the right results when I ran his solution. Are
JAR> you sure you updated the filenames properly?

Actually I am very sorry, if it was not so clear what I wanted to
achieve with my query. Maybe it was a big mistake not to post the
whole docs.

So I have put together again the overall document I want to get by the
query:


<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>5.7mm</Value1>
        <Value2>4.9</Value2>
        <FileName>file2</FileName>
    </meta>
     <meta>
        <Value1>6.0mm</Value1>
        <Value2>4.9</Value2> 
        <FileName>file3</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>

And maybe the overall input docs:

doc1:
<FNumber>
    <meta>
        <Value2>8.0</Value2>
        <FileName>file11</FileName>
    </meta>
    <meta>
        <Value2>6.3</Value2>
        <FileName>file12</FileName>
    </meta>
    <meta>
        <Value2>5.6</Value2>
        <FileName>file6</FileName>
    </meta>
    <meta>
        <Value2>4.9</Value2>
        <FileName>file2</FileName>
        <FileName>file3</FileName>
    </meta>
    <meta>
        <Value2>4.0</Value2>
        <FileName>file1</FileName>
        <FileName>file10</FileName>
    </meta>
    <meta>
        <Value2>2.9</Value2>
        <FileName>file4</FileName>
        <FileName>file5</FileName>
    </meta>
    <meta>
        <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>
        <Value2>16.0</Value2>
        <FileName>file13</FileName>
    </meta>
</FNumber>


and doc2:
<FocalLength>
    <meta>
        <Value1>70.0mm</Value1>
        <FileName>file11</FileName>
    </meta>
    <meta>
        <Value1>7.90mm</Value1>
        <FileName>file1</FileName>
        <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>6.13mm</Value1>
        <FileName>file6</FileName>
    </meta>
    <meta>
        <Value1>6.0mm</Value1>
        <FileName>file3</FileName>
    </meta>
    <meta>
        <Value1>55.0mm</Value1>
        <FileName>file12</FileName>
    </meta>
    <meta>
        <Value1>5.7mm</Value1>
        <FileName>file2</FileName>
        <FileName>file4</FileName>
        <FileName>file5</FileName>
    </meta>
    <meta>
        <Value1>12.0mm</Value1>
        <FileName>file13</FileName>
    </meta>
    <meta>
        <Value1>10.0mm</Value1>
        <FileName>file10</FileName>
    </meta>
</FocalLength>



So I have printed it manually now, I hope there is no mistake in it.  As you see for example
<FileName>file2</FileName> in the result document is together with
Value1: 5.7mm and Value2: 4.9. So the query should filter that these
values are only conform to "file2"and not to "file3" for example. I
hope you better understand it now. But as long as I can understand the
code that you posted me it tries to print out something as I wanted
it.

@James : I also tried your last code with the collection function, it
throwed out this:
<FF>
    <meta>
        <Value1>70.0mm</Value1>
        <Value1>7.90mm</Value1>
        <Value1>6.13mm</Value1>
        <Value1>6.0mm</Value1>
        <Value1>55.0mm</Value1>
        <Value1>5.7mm</Value1>
        <Value1>12.0mm</Value1>
        <Value1>10.0mm</Value1>
        <FileName>file11</FileName>
        <FileName>file1</FileName>
        <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>
        <FileName>file6</FileName>
        <FileName>file3</FileName>
        <FileName>file12</FileName>
        <FileName>file2</FileName>
        <FileName>file4</FileName>
        <FileName>file5</FileName>
        <FileName>file13</FileName>
        <FileName>file10</FileName>
    </meta>
</FF>

@David  I tried it also the other way round with changing the docs
names, but still doesn't work


So again thanks for your help.

Sebastian
  





More information about the talk mailing list