0

我需要使用 XQuery 组合来自两个 XML 文件的数据,并使用这些数据创建一个 HTML 表。

第一个文件包含具有属性的元素,该属性标识元素:

<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)}
4

2 回答 2

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>
于 2012-08-10T11:19:43.140 回答
0

我不明白哪些数据是不需要的。您只需插入两个属性xref和s 的id值。s 不需要仅使用第二个片段来产生所需的输出2nd-elementelement

于 2012-08-10T08:58:52.927 回答