Проблема со скрытием предупреждений в XSL
Привет всем! У меня есть XML файл с данными об ошибках и предупреждениях из лога сборки. Я смог написать XSL код чтобы показывать эти списки в браузере. Теперь хочу добавить JavaScript функцию с кнопкой для скрытия/показа предупреждений. Но что-то не работает как надо.
<xsl:template match="/">
<xsl:variable name="alerts" select="//build//logs//notification" />
<xsl:variable name="warn.alerts" select="$alerts[contains(text(), 'warn') or @type='Warning']" />
<xsl:variable name="warn.count" select="count($warn.alerts)" />
<xsl:if test="$warn.count > 0">
<script type="text/javascript">
function showHideWarnings() {
var alertDiv = document.getElementById("warningList");
var titleDiv = document.getElementById("warningHeader");
if (alertDiv.style.display == "none") {
alertDiv.style.display = "block";
titleDiv.innerText = "Скрыть предупреждения";
} else {
titleDiv.innerText = "Показать предупреждения";
alertDiv.style.display = "none";
}
}
</script>
<div>
<button onclick="showHideWarnings()">
<span id="warningHeader">Показать предупреждения</span>
</button>
<div id="warningList" style="display: none;">
<xsl:for-each select="$warn.alerts">
<p class="warning-item">
<xsl:value-of select="."/>
</p>
</xsl:for-each>
</div>
</div>
</xsl:if>
</xsl:template>
Проблема в том что показывается только одно предупреждение когда нажимаю на ссылку. Я не очень хорошо знаю как правильно совмещать HTML, XSL и JavaScript.
Как мне правильно перебрать XSL элементы, показать их в таблице и при этом иметь возможность скрывать все эти элементы одной кнопкой?