Копирование определенного блока xml - PullRequest
0 голосов
/ 08 августа 2011

У меня есть xml, как показано ниже.

   <emp>
      <Name>Rice</Name>
      <Designation>Operator</Designation>
      <sal>$2000</sal> 
      <hobbies><description>1.Playaing Games 2.Watching Movies</description></hobbies>
   </emp>
   <emp>
      <Name>Jeff</Name>
      <Designation>Admin</Designation>
      <sal>$1000</sal> 
      <hobbies><description>1.Listening Music</description></hobbies>
   </emp>

Мое требование всякий раз, когда встречается тег <hobbies>, мне нужно скопировать секцию хобби (<hobbies>1.Playaing Games 2.Watching Movies</hobbies>), как в результирующем документе. Я использую xsl для преобразования из одного xml в другой xml. Мой код должен выглядеть следующим образом.

 <EmployeeDetails>
    Rice,Operator,$2000
    <hobbies><description>1.Playaing Games 2.Watching Movies</description></hobbies>
  </EmployeeDetails>
   <EmployeeDetails>
    Jeff,Admin,$1000
    <hobbies><description>1.Listening Music</description></hobbies> 
  </EmployeeDetails>

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

1 Ответ

0 голосов
/ 08 августа 2011

Используйте этот шаблон:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="emp">
        <EmployeeDetails>
            <xsl:value-of select="concat(Name, ',', Designation, ',', sal)"/>

            <xsl:copy-of select="hobbies"/>
        </EmployeeDetails>
    </xsl:template>

</xsl:stylesheet>

Вывод:

<EmployeeDetails>
    Rice,Operator,$2000<hobbies>
        <description>1.Playaing Games 2.Watching Movies</description>
    </hobbies>
</EmployeeDetails>
<EmployeeDetails>
    Jeff,Admin,$1000<hobbies>
        <description>1.Listening Music</description>
    </hobbies>
</EmployeeDetails>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...