我正在使用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 :(得分: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()"/>