Доброе утро. У меня есть файл XML, который содержит списки предупреждений и ошибок из вывода сборки. Я успешно смог написать XSL для перебора отдельных списков предупреждений и ошибок, чтобы они отображались в моем браузере. Далее я хотел бы добавить немного JavaScript, чтобы добавить ссылку / кнопку, чтобы можно было переключать отображение предупреждений. Я не могу заставить его работать должным образом.
вот соответствующий код (урезанный до того, что, я надеюсь, является основным)
<xsl:template match="/">
<xsl:variable name="messages" select="/cruisecontrol//buildresults//message" />
<xsl:variable name="warning.messages" select="$messages[(contains(text), 'warning ')) or @level='Warning']" />
<xsl:variable name="warning.messages.count" select="count($warning.messages)" />
<xsl:if test="$warning.messages.count > 0">
<script type="text/javascript">
function toggleWarnings() {
eDiv = document.getElementById("warnings");
tDiv = document.getElementById("warningsTitle");
if ( eDiv.style.display == "none" ) {
eDiv.style.display = "inline";
tDiv.innerText = "Hide Warnings";
} else {
tDiv.innerText = "View Warnings";
eDiv.style.display = "none";
}
}
</script>
<table>
<tr> <td>
<a href="javascript:void()" onclick="javascript:toggleWarnings(); return false;">
<span id="warningsTitle">View Warnings</span>
</a>
</td> </tr>
<xsl:for-each select="$warning.messages">
<tr> <td class="warning" id="warnings" style="display: none;">
<xsl:value-of select="."/>
</td> </tr>
</xsl:for-each>
</table>
Проблема, с которой я столкнулся, заключается в том, что после нажатия на ссылку «просмотреть предупреждения» отображается только одно предупреждение. Моя проблема в том, что я знаю достаточно HTML, XSL и javascript, чтобы быть немного опасным, а комбинация доказывает, что я недостаточно знаю: -)
Есть ли для меня простой способ перебирать элементы XSL, отображать их в виде таблицы, а также иметь возможность скрывать все эти элементы при переключении ссылок?
Спасибо.