2012-04-23 1 views
2

Я пытаюсь передать результат значения -выбрать параметр другого значения-select. Вот полный код с псевдо оператором (MYVAR)Значение использования XSLT внутри select (Вложенное значение -выбрать)

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes" /> 
    <xsl:variable name="data" select="document('user.xml')/user/data" /> 
    <xsl:template match="/"> 
     <xsl:for-each select="form/field"> 
      <p class="field"> 
       <xsl:attribute name="style">left:<xsl:value-of 
       select="left" />;top:<xsl:value-of select="top" />; 
       </xsl:attribute> 
       myVar = <xsl:value-of select="text" /> 
       <xsl:value-of select="$data[@key = {@myVar}]/@value" /> 
      </p> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 
+0

Итак, в чем вопрос? Кажется, нет. Что такое исходный XML-документ? Что такое желаемый результат? Каковы требования, которые должна выполнить трансформация? Пожалуйста, отредактируйте этот вопрос и предоставьте всю эту недостающую и важную информацию. –

+0

Это явно бессмыслица: 'select =" $ data [@key = {@myVar}]/@ value "'. Но, пожалуйста, не ждите, чтобы вводить глупость в ваш вопрос и просить людей исправить это. Как мы можем догадаться, что это означало? –

ответ

1

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

 myVar = <xsl:value-of select="text" /> 
     <xsl:value-of select="$data[@key = {@myVar}]/@value" /> 

выше строка синтаксически неправильно - select единственный атрибут, который не принимает АВТ.

Для того, чтобы достичь желаемого результата замены выше:

<xsl:value-of select="$data[@key = current()/text]/@value" /> 

Объяснение: Правильное использование XSLT current() функции.

Смежные вопросы