2012-08-10 45 views
0

我需要使用XQuery合併來自兩個XML文件的數據並使用這些數據創建一個HTML表格。如何使用XQuery連接和匹配來自兩個XML文件的數據?

第一文件包含一個屬性,它標識的元素的元素:

<element id="x"/> 
<element id="x2"/> 

第二個文件包含另一個標識符以及元素交叉引用在第一文件中的元素:

<2nd-element id="y" xref="x"/> 
<2nd-element id="y2" xref="x2"/> 

如何篩選數據以便我留下以下結果?

<table> 
    <tbody> 
    <tr><td>x</td><td>y</td></tr> 
    <tr><td>x2</td><td>y2</td></tr> 
    </tbody> 
    </table> 

目前,我能夠填充所有外部參照第二個文件屬性的第二列,但如何過濾掉不需要的數據?

如何包含表達式來過濾表達式中的數據用於填充表列?

{data(2nd-element/@xref)} 

回答

0

你走在第一個文件的ID,匹配第二個文件的ID,併爲每對創建一個錶行:

<table> 
    <tbody> 
    { 
    for $id1 in $first-file//element/@id 
    let $id2 := $second-file//element-2nd[@xref = $id1]/@id 
    return <tr><td>{data($id1)}</td><td>{data($id2)}</td></tr> 
    } 
    </tbody> 
</table> 
+0

謝謝Gunther:我放錯了'[@xref = $ id1]'屬性@id。 – ritzdiamond 2012-08-10 11:49:27

0

我不明白什麼數據是不需要的。您只需插入2nd-element s的兩個屬性xrefid的值。只需使用第二個片段即可生成所需的輸出,因此不需要使用element

+0

的第一個文件明確表明那些在結果通緝。 – Gunther 2012-08-10 11:21:30

相關問題