У меня есть статический список стран в xsl, который я хотел бы получить с предварительно выбранным значением. Для этого требуется выполнить итерацию по каждому узлу и выполнить простую проверку (предпочтительно, сохраняя при этом страны автономными в одном файле). Однако выполнение < xsl: копия > работает, но < xsl: for-each > на том же самом выражении нет - что происходит? Это возможно?XSLT1.0 Зацикливание по данным с самоначислением
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:isoCountry="isoCountry:country">
<isoCountry:country>
<option value=""></option>
<option value="AU">Australia</option>
<option value="AD">Andorra</option>
<option value="AE">United Arab Emirates</option>
<option value="AF">Afghanistan</option>
<option value="AG">Antigua and Barbuda</option>
</isoCountry:country>
<xsl:template name="CountrySelect">
<select>
<option> <!-- correct number of nodes, good -->
<xsl:value-of select="count(document('')/*/isoCountry:menu/menu/*)"/>
</option>
<xsl:copy-of select="document('')/*/isoCountry:country/option"/> <!-- this works -->
<xsl:for-each select="document('')/*/isoCountry:country/option"> <!-- this does not -->
<option><xsl:value-of select="."/></option>
</xsl:for-each>
</select>
</xsl:template>
</xsl:stylesheet>
Я не уверен, что вы хотите делать для каждого. Он выводит текстовое значение каждой «страны/опции», завернутой в элемент 'option'. Если вы хотите, чтобы копия 'option' использовала' '. –
teppic
эй спасибо за ответ, намерение сделать что-то вроде – Onitz
Как выглядит ваш желаемый результат (добавьте его в свой вопрос)? – zx485