Возможна ли динамическая оценка строки переменной XPath с использованием реализации XNET-приложения .NET 2.0 - PullRequest
3 голосов
/ 13 марта 2010

Я пытаюсь оценить varable XPath , который я строю динамически в зависимости от положения узла.

Я могу создать строку XPath в переменной, но когда я выбираю значение этого, просто получаю строку, а не набор узлов, который мне нужен.

Я использую следующее для создания запроса XPath.

<xsl:variable name="xpathstring" 
              select="normalize-space(concat(&quot;//anAttribute[@key='pos&quot;,position(),&quot;']&quot;))"/>

И попробуйте вывести значение следующим образом.

<xsl:value-of select="$xpathstring"/>

Если я выполняю запрос XPath в моем отладчике, я получаю набор узлов, но в выводе XML получаю только строку XPath, которая выглядит следующим образом //anAttribute[@key='pos1'].

Я посмотрел на exslt dyn:evaluate, который, кажется, позволяет это сделать, но, похоже, он поддерживается только некоторыми процессорами и не обеспечивает автономную реализацию или, по крайней мере, насколько я мог видеть (в настоящее время используется стандарт .NET 2.0 XSLT , насколько я помню, только XSLT 1.0.)

Есть ли способ справиться с этим без замены процессора?

1 Ответ

1 голос
/ 13 марта 2010

Почему вы не используете параметр вместо конкатенации:

<xsl:param name="pos">
    <xsl:text>pos</xsl:text>
    <xsl:value-of select="position()"/>
</xsl:param>
<xsl:value-of select="//anAttribute[@key=$pos]"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...