XSLT для передачи значения с XML-тегом

#xslt #xquery

#xslt #xquery

Вопрос:

Мне нужно получить значение узла в формате xml, но все, что я получаю, — это значения внутри этих тегов.

Тело:

 <input>
<first>one</first>
<second>two</second>
<third>three</third>
</input>
  

XQuery

 <PayloadAsMessage>
          <xsl:value-of select="/input"/>
</PayloadAsMessage>
  

Ожидаемый результат:

 <PayloadAsMessage>
        <first>one</first>
        <second>two</second>
        <third>three</third>
</PayloadAsMessage>
  

Что я получаю:

 <PayloadAsMessage>
        onetwothree
</PayloadAsMessage>
  

Комментарии:

1. спасибо, что указали на это. будет отредактировано.

Ответ №1:

xsl:value-of принимает строковое значение элемента (это также XSLT, а не XQuery). Чтобы точно скопировать XML, используйте либо xsl:copy-of (XSLT 1), либо xsl:sequence (XSLT2).

 <xsl:copy-of select="/input/*"/>
  

или

 <xsl:sequence select="/input/*"/>