2017-02-22 74 views
0

Я разбираю XML-файл с различными элементами для создания CSV. Я перебирать людей, как этотXSL Transformation: Получить элемент по ID из переменной

<xsl:template match="/root/persons/person"> 
    <xsl:for-each select="."> 
     <xsl:value-of select="name" /> 
     <xsl:text>;</xsl:text> 

     <xsl:variable name="refId"> 
      <xsl:value-of select="role/@refId"/> 
     </xsl:variable> 

     <!-- This is the problematic part --> 
     <xsl:value-of select="/root/roles/role[@id='$refId']"/> 

     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
</xsl:template> 

в моем лице элемент У меня есть RefID, который ссылается на идентификатор роли элемента. Как я могу получить имя роли с refId, загруженным в переменную, как указано выше?

ответ

1

Попробуйте использовать это:

<xsl:value-of select="/root/roles/role[@id=string($refId)]"/> 

Я предположив, что ваш путь является правильным, так как мы не можем видеть ваш XML для проверки.

+0

Это работает. Спасибо –

+0

@juergend Добро пожаловать :) У меня была эта проблема буквально вчера, но я не могу найти ответ SO, который мне тогда помог. – AntonH

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

  • Нет связанных вопросов^_^