Я пытаюсь использовать переменную xsl в блоке javascript в моем файле xslt, и я нахожусь в конце моего ума.Как использовать переменную xsl в блоке javascript
Вот XSLT (отредактированный для общественного потребления):
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes"/>
<xsl:template match="a">
<xsl:variable name="myVar" select="xpath to the node"/>
<script type='text/javascript'>
googletag.cmd.push(function() {
...
googletag.pubads().setTargeting('label', '<xsl:value-of select="$myVar"/>');
googletag.enableServices();
});
</script>
</xsl:template>
</xsl:stylesheet>
Если я преобразовать XML в кислороде, этот код работает отлично. Но когда я запускаю его через мой сервлет, который использует javax.xml.transform.Transformer.transform(Source xmlSource, Result outputTarget) throws TransformerException
, я получаю это: googletag.pubads().setTargeting('label', ' ');
Можно ли предположить возможную причину этого несоответствия между кислородом и мой сервлет?
Является ли ваша проблема, что при запуске через oXygen вывод имеет значение для '$ myVar' и при запуске через сервлет нет значения для значения? Это может быть разница между тем, какие документы отправляются в преобразования. Что такое xpath для узла? Вы уверены, что это соответствует? Уменьшите до более простого теста только XSLT, который выдает значение '$ myVar', чтобы убедиться, что вы правильно сопоставляете, когда запускаете сервлет. –