2014-02-11 3 views
0

я вопрос себе представить, я следующий XML:XSLT массив содержит набор из другого массива

<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"/> 

Теперь у меня есть эти 2 массивы как можно Я получаю еще один массив, фильтрованный, где все строки описания, где repots SId = работают SId. Это должно быть что-то вроде этого: <xsl:variable="Filtered" select="AllProjects[@SId=$AllReports/@SId]" />

ответ

1

Я не уверен, я полностью понимаю вашу проблему ... Но это работает:

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

О да, это делает работу Хах – Alnedru

Смежные вопросы