Я пытаюсь отправить переменную, которая находится в Javascript, в XSLT-шаблон, когда я его вызываю (через параметр).Xpath не читает параметр правильно?
Я вызываю шаблон из JavaScript, и я, кажется, могу передать эту переменную в порядке, но по какой-то причине, когда я пытаюсь использовать эту переменную в выражении xpath, она не работает.
Javascript:
var children = document.getElementsByTagName("rect");
for (var i = 0; i < children.length; i++) {
children[i].addEventListener("click", function() { onElementClick(this.id); }, false);
}
function onElementClick(id) {
console.log(id);
console.log(<xsl:call-template name='getData'><xsl:with-param name='id'>id</xsl:with-param></xsl:call-template>);
}
Выше код у меня есть. Как вы можете видеть, он получает элемент SVG (rect) и отправляет идентификатор функции, когда щелкает прямоугольник. Затем он должен вызвать функцию для получения данных xml, связанных с этим идентификатором прямоугольника.
XSL:
<xsl:template name="getData">
<xsl:param name="id"/>
<xsl:value-of select="//*[id[text() = $id]]"/>
</xsl:template>
Выход заключается в следующем:
LOG: БУС-0015
LOG:
Первые выводит Javascript ID, а вторые выходы результат выражения xpath. Я знаю, что выражение xpath корректно, потому что, если я задаю переменную вручную в шаблоне с тем же самым текстом, он найдет ожидаемые данные. Я думаю, что это, может быть, как это передать его в шаблон xsl? Но когда я меняю код, чтобы он просто возвращал значение параметра, который был передан, он печатает то же самое, что и предыдущий console.log (id).
это второй консоль.log ... псевдо код? –
Можете ли вы обновить свой код? Это недействительный JavaScript. – Abel