XSLT数组包含来自其他数组的set

时间:2014-02-11 07:19:42

标签: xslt-1.0

我有一个问题想象我跟随xml:

  <dsQueryResponse>
    <Work_Description>
      <Rows>
        <Row SId="{6EB1996C-8629-4BF9-92CA-956551E8D10D}" Title="DemoV1" />
        <Row SId="{6819144E-A9B7-4611-A694-7D2EDBF910A7}" Title="Template 1" />
        <Row SId="{2E56B932-F197-4335-AE92-1B5BF23D3EA4}" Title="Template 2"  />
      </Rows>
    </Work_Description>
    <Reports>
      <Rows>
        <Row SId="{6EB1996C-8629-4BF9-92CA-956551E8D10D}" Title="Reports" />
        <Row SId="{6EB1996C-8629-4BF9-92CA-956551E8D103}" Title="Reports 2" />
        <Row SId="{6EB1996C-8629-4BF9-92CA-956551E8D10S}" Title="Reports 3" />
        <Row SId="{6EB1996C-8629-4BF9-92CA-956551E8D10A}" Title="Reports 4" />
      </Rows>
    </Reports>
  </dsQueryResponse>

在我的XSLT中我有以下内容:

  <xsl:variable name="AllProjects" select="/dsQueryResponse/Work_Description/Rows/Row"/>
  <xsl:variable name="AllReports" select="/dsQueryResponse/Reports/Rows/Row"/>

现在我有了这两个数组,我怎样才能得到另一个数组,其中所有描述行都是repd SId = work SId。   它应该是这样的:<xsl:variable="Filtered" select="AllProjects[@SId=$AllReports/@SId]" />

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解你的问题...但这是有效的:

<xsl:variable name="Filtered" select="$AllProjects[@SId=$AllReports/@SId]" />
<xsl:copy-of select="$Filtered"/>