2014-01-21 2 views
0

Я преобразовываю XML в HTML с помощью XSLT.Преобразование XML в HTML

Я имею следующую структуру XML:

<Info><Description> 
<p><strong><span style="font-family: Verdana; color: #f0b444;">Description<br /> 
<span class="BookingResultTxtBlue">description goes here.</span></span></strong></p> 

<p><strong><span style="font-family: Verdana; color: #f0b444;"><span class="BookingResultTxtBlue">Test 1</span></span></strong></p> 

<p><strong><span style="font-family: Verdana; color: #f0b444;"><span class="BookingResultTxtBlue">Test 2</span></span></strong></p> 

<p><strong><span style="font-family: Verdana; color: #f0b444;"><span class="BookingResultTxtBlue">Test 3</span></span></strong></p> 

</Description></Info> 

Мой XSLT выглядит следующим образом

<table> 
<tr> 
     <td> 
     <xsl:value-of select='Info/Description'/> 
    </td> 
</tr> 
</table> 

После tansformation HTML является

<table> 
<tr> 
    <td>description goes here 
     Test1 
     Test2 
     Test3 
    </td> 
</tr> 
</table> 

Что я хочу здесь есть, стили в оригинале XML будет применяться после преобразования.

ответ

0

То, что вы хотите что-то вроде ниже

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0"> 

    <xsl:template match="@*|node()"> 
     <xsl:copy> 
      <xsl:apply-templates select="@*|node()"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="Info/Description"> 
     <table> 
      <tr> 
       <td Class="BookingResultTxtBlue"> 
        <xsl:apply-templates/> 
       </td> 
      </tr> 
     </table> 
    </xsl:template> 

    <xsl:template match="Info"> 
     <xsl:apply-templates/> 
    </xsl:template> 
</xsl:stylesheet> 

Первые экземпляры шаблона все узлы, второй шаблон делает преобразование к нужному выходу, а третий шаблон устраняет Info узел.

+0

Я могу превратить его корректно. Но я сталкиваюсь с новой проблемой при использовании шаблона. Всякий раз, когда есть & nbsp; в описании он отображается как   Есть ли способ справиться с этим? –

+0

Посмотрите это решение Mads Hansen (http://stackoverflow.com/questions/21272212/xslt-1-0-cant-translate-apostrophe) –

0

Вместо

<xsl:value-of select='Info/Description'/> 

попробовать:

<xsl:copy-of select="Info/Description/node()"/> 
Смежные вопросы