我正在使用XSLT和XML文件来构建网页。假设我的数据分散在几个文件中,如下所示:
CoreOptions.xml:
<optionsets>
<optionset id="yes-no">
<option id="yes">Yes</option>
<option id="no">No</option>
</optionset>
...
</optionsets>
ProjectSpecificOptions.xml:
<optionsets>
<optionset id="menu">
<option id="1">Chicken</option>
<option id="2">Fish</option>
</optionset>
...
</optionsets>
现在,通常情况下,我会像这样拉他们:
<xsl:param name="CoreOptionSets" select="document('CoreOptions.xml')/optionsets" />
<xsl:param name="ProjectOptionSets" select="document('ProjectSpecificOptions.xml')/optionsets" />
...并通过变量名引用它们。
<xsl:apply-templates select="$CoreOptionSets/optionset[id=....
但是,我正在努力设置,以便转换既不知道也不关心数据实际存在于哪个文件中。如果我选择optionset[@id='menu']
,我不想指定哪个文件我把它拉出来了。
我该怎么做?
答案 0 :(得分:2)
您可以合并添加此变量的集合:
<xsl:variable name="AllSets" select="$CoreOptionSets | $ProjectOptionSets"/>
然后使用以下选项设置:
$AllSets/optionset[@id='menu']
$AllSets/optionset[@id='yes-no']