Вы не можете вызывать XSLT из JavaScript или вызывать JavaScript из XSLT, как в вашем примере обработчика кликов (*).Если вы используете XSLT на стороне сервера, что не так с использованием
<td><a>
<xsl:attribute name="href">
<xsl:value-of select="concat('https://www.google.com/search?q=', example_name)"/>
</xsl:attribute>
<xsl:attribute name="target">_blank</xsl:attribute>
<xsl:value-of select="example_name"/>
</a></td>
Если вам абсолютно необходимо использовать JavaScript для открытия нового окна, у вас будут проблемы из-за слишком большого количества уровнейвложенного цитирования.Например,
<td><a>
<xsl:attribute name="href">
<!-- INVALID XML ATTRIBUTE SPECIFICATION
just for demonstrating the problem with nesting single quotes
into single quoted literals into double quoted attributes -->
<xsl:value-of select="concat('javascript:window.open("https://www.google.com/search?q=", example_name)"/>
</xsl:attribute>
<xsl:value-of select="example_name"/>
</a></td>
См. Удаление двойных кавычек и косых черт в XSLT для техники, чтобы помочь здесь.
*) Раньше был EXSLT много лет назад, который позволялXSLT должен быть расширен за счет пользовательских функций JavaScript, хотя он никогда не запускался в браузере.Был также проект Sarissa (как в 2006 году или около того), чтобы принести XSLT в браузеры, в дополнение к тому, что было возможно с <?xml-stylesheet>
и специфичными для браузера способами вызывать обработку XSLT.И я считаю, что новейший XSLT-движок Saxonica, как было продемонстрировано, также работает на стороне браузера, а также имеет средства интеграции, такие как анализ JSON, для использования в такой среде.