Как совместить два выбора в XML - PullRequest
0 голосов
/ 02 мая 2018

Во входном XML-файле у меня есть отдельно Имя и Фамилия:

 <ClientList>
    <Client>
        <Name>Jan</Name>
        <Surname>Kowalski</Surname>
    </Client>
 </ClientList>

В выходной XML-файл я хочу получить такой вывод:

 <NameSurname>Jan Kowalski</NameSurname>

Мой XSL-файл не работает так, как я хочу:

<xsl:for-each select="ClientList/Client">
<xsl:element name="NameSurname">
<xsl:value-of select="Name"/>
<xsl:value-of select="Surname"/>
</xsl:element>

Как объединить имя и фамилию?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018
<xsl:template match="/">
       <xsl:for-each select="ClientList/Client">
           <xsl:element name="Name_Surname">
               <xsl:value-of select="concat(Name,' ',Surname)"/>
           </xsl:element>
       </xsl:for-each>
   </xsl:template>
0 голосов
/ 02 мая 2018

Ваш XSLT выглядит нормально. Добавьте <xsl:text> </xsl:text>, чтобы вставить пробел между именами.

Кстати, <xsl:element name="NameSurname"> - очень краткий способ сказать <NameSurname>. Не используйте <xsl:element>, если имя вашего элемента не является результатом вычисления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...