закрыть, но вам нужно экранировать переменную <xsl: element name = "{$ elemName}">

я есть входящий XML-файл со структурой списка:

<list>
  <listItem>
    <name>elementOne</name>
    <value>elementOneValue</name>
  </listItem>
  <listItem>
    <name>elementTwo</name>
    <value>elementTwoValue</name>
  </listItem>
</list>

Который я пытаюсь преобразовать в эту структуру:

<elementOne>elementOneValue</elementOne>
<elementTwo>elementTwoValue</elementTwo>

Это простая логика для реализации с XSL, но у меня возникают сложности.

<xsl:for-each select="/list/listItem">
  <xsl:element name="<xsl:value-of select="name"/>">
    <xsl:value-of select="value"/>
  </xsl:element>
</xsl:for-each>

Не работает, потому что я предполагаю, что последовательные двойные кавычки ломают<xsl:element>&nbsp;тег

<xsl:for-each select="/list/listItem">
  <<xsl:value-of select="name"/>>
    <xsl:value-of select="value"/>
  </<xsl:value-of select="name"/>>
</xsl:for-each>

Не работает, потому что я не могу использовать<<&nbsp;или же>>&nbsp;а также

<xsl:for-each select="/list/listItem">
  &lt;<xsl:value-of select="name"/>&gt;
    <xsl:value-of select="value"/>
  &lt;/<xsl:value-of select="name"/>&gt;
</xsl:for-each>

Не работает, потому что я в конечном итоге> и <в моем коде вместо разбора XML<&nbsp;или же>, Я ожидал, что это будет очень простое решение, но я не могу найти никаких записей для этого в Интернете. Какое простое исправление я пропускаю?