我不确定我是否正确说了标题,但让我尝试解释一下:
使用the first example from here:
declare variable $message := ("message1","message2");
<output>
<print>{$message[1]}</print>
<print>{$message[2]}</print>
</output>
您将获得以下输出:
<output>
<print>message1</print>
<print>message2</print>
</output>
我正在尝试使用更复杂的变量based on Question 5 here获得相似的效果。这个想法是使用以下表格创建法语国家和德语国家的列表:
<result>
<French>
<country>country-name</country>
...
</French>
<German>
<country>country-name</country>
...
</German>
</result>
有多种方法可以做到这一点,但是我对第一个示例的开头特别感兴趣:
declare variable $lang := doc("countries.xml")//country/language[.=('French','German')];
,并使用如下所示的FLOWR表达式:
<result>
<French>
{for $f in (the first language specified in the $lang predicate)
return <country>{$f/data(@name)}</country>
}
</French>
<German>
{for $f in (the second language specified in the $lang predicate)
return <country>{$f/data(@name)}</country>
}
</German>
</result>
那可行吗?如果可以,怎么做到?