надеюсь, это поможет вам

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

Вот мой xml (ничего особенного):

<?xml version="1.0" encoding="UTF-8"?>
<REPORT>

</REPORT>

Вот мой xsl:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="REPORT">
      <xsl:variable name="tryThisTemplate">
        <xsl:call-template name="TRY_THIS"/>
      </xsl:variable>
      <TEST1>
        <xsl:call-template name="TRY_THIS"/>
      </TEST1>
      <TEST2>
        <xsl:value-of disable-output-escaping="yes" select="$tryThisTemplate" />
      </TEST2>
      <TEST3>
        <xsl:value-of select="$tryThisTemplate" />
      </TEST3>
    </xsl:template>

    <xsl:template name="TRY_THIS">
      <MY_NODE desc="my description" />
    </xsl:template>
</xsl:stylesheet>

Вот мой результат:

<?xml version="1.0" encoding="utf-8"?>  
<TEST1>
  <MY_NODE desc="my description"/>
</TEST1>
<TEST2></TEST2>
<TEST3></TEST3>

Вот мой вопрос: почему TEST2 и TEST3 не работают. Переменная $ tryThisTemplate выглядит пустой. Я что-то здесь неправильно понимаю. Должен ли я делать это по-другому?

Ответы на вопрос(4)

Ваш ответ на вопрос