Я хотел бы сделать замену строки со значением из переменной, например:Можно ли использовать переменные в EXSLT str: replace?
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:str="http://exslt.org/strings" extension-element-prefixes="str" >
<xsl:variable name="my-variable">bar</xsl:variable>
<xsl:template match="text()">
<xsl:value-of select="str:replace(. ,'foo', $my-variable)"/>
</xsl:template>
</xsl:stylesheet>
Когда я запускаю это на файле, например,
<?xml version="1.0" encoding="utf-8"?>
<root>foobar</root>
I эту ошибку из xsltproc/LibXSLT
XPath error : Invalid type
xmlXPathCompiledEval: evaluation failed
runtime error: file C:/Users/Adam/Documents/WakhiLD/XSL/replace.xsl line 6 element value-of
XPath evaluation returned no result.
Представляется целесообразным использовать переменные в вызовах функций, так что я в недоумении относительно того, что я должен делать.
Благодарим за быстрый и ясный ответ. Эта вещь фрагмента дерева XSLT 1.0 получила меня несколько раз раньше (с разной спецификой) ... –