将XML转换为HTML

时间:2014-01-21 06:38:49

标签: html asp.net xml xslt

我正在使用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中的样式将在转换后应用。

2 个答案:

答案 0 :(得分: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节点。

答案 1 :(得分:0)

而不是

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

尝试:

<xsl:copy-of select="Info/Description/node()"/>