我对 XML 的 XSL 转换的 HTML 输出有问题。在 XML 中,可以看到段落中间有一个分页符
. 样式表此时会插入一个可视分页符,但这会破坏整个段落的格式。分页符后出现的行缩进正确,但行距太近,看起来和普通段落一样。有没有办法在不进行大修的情况下解决这个问题?
我相信我已经包含了所有相关代码:
开始 XML
<floatingText xml:id="foo.001" type="bar">
<opener>
<address>
<addrLine>Address</addrLine>
<addrLine>
<date when="2017-04-26">April 26, 2017</date>
</addrLine>
</address>
<salute>
<hi rend="italic">Hello world.</hi>
</salute>
</opener>
<body>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Pellentesque eget odio<pb type="recto" n="19"/> pellentesque, mollis
mi et, malesuada
est. Duis eleifend ullamcorper justo, vitae accumsan ante
porta id.</p>
<closer>
<salute>Yours,</salute>
<signed>Me</signed>
</closer>
</body>
</floatingText>
结束 XML
开始 XSL 转换
<xsl:template match="pb[@n]">
<LEFT>
<table>
<tr>
<td> </td>
</tr>
<tr>
<td style="white-space: nowrap"> - - - - - - - - - - - -
- - - - - -
<font face="Arial" size="-2">
[Begin page <xsl:value-of select="@n"
/>]</font> - - - - - - - - - - - - - - - - - -
</td>
</tr>
<tr>
<td height="10"> </td>
</tr>
</table>
</LEFT>
</xsl:template>
<xsl:template match="p">
<xsl:choose>
<xsl:when test="@rend = 'center'">
<p/>
<font face="Arial Unicode MS, sans-serif" size="-1">
<center>
<xsl:apply-templates/>
</center>
</font>
</xsl:when>
<xsl:otherwise>
<font face="Arial Unicode MS, sans-serif" size="-1">
<p/>     <xsl:apply-templates/>
</font>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="closer | opener | dateline">
<font face="Arial Unicode MS, sans-serif" size="-1">
<blockquote>
<xsl:apply-templates/>
<br/>
</blockquote>
</font>
</xsl:template>
<xsl:template match="salute | signed">
<font face="Arial Unicode MS, sans-serif" size="-1">
<p/>
<br/>
<xsl:apply-templates/>
<br/>
</font>
</xsl:template>
<xsl:template match="floatingText[@type = 'letter']">
<blockquote>
<font face="Arial Unicode MS, sans-serif" size="-1">
<xsl:apply-templates/>
</font>
</blockquote>
</xsl:template>
结束 XSL
开始 HTML 输出
<font xmlns="" face="Arial Unicode MS, sans-serif" size="-1">
<blockquote>
<font face="Arial Unicode MS, sans-serif" size="-1">
<font face="Arial Unicode MS, sans-serif" size="-1">
<blockquote>
<font face="Arial Unicode MS, sans-serif" size="-1">
<br />Address
</font>
<font face="Arial Unicode MS, sans-serif" size="-1">
<br /> April 26, 2017.
</font>
<font face="Arial Unicode MS, sans-serif" size="-1">
<p /><br />
<font face="Arial, sans-serif"><i>Hello world.
</i>
</font><br />
</font><br />
</blockquote>
</font>
<font face="Arial Unicode MS, sans-serif" size="-1">
<p />     Lorem ipsum dolor sit
amet, consectetur adipiscing elit. Pellentesque posuere, erat non
commodo ornare, nunc nulla faucibus mauris, quis venenatis urna
turpis eu lorem. Pellentesque eget odio
<CENTER>
<table>
<tr>
<td> 
</td>
</tr>
<tr>
<td style="white-space: nowrap">
<font face="Arial" size="-2">
[dashes are here] begin page 19 [dashes are here]
</font>
</td>
</tr>
<tr>
<td height="10"> 
</td>
</tr>
</table>
</CENTER>
pellentesque, mollis mi et, malesuada est. Duis eleifend
ullamcorper justo, vitae accumsan ante porta id.
</font>
<font face="Arial Unicode MS, sans-serif" size="-1">
<blockquote>
<font face="Arial Unicode MS, sans-serif" size="-1">
<p /><br />Yours,<br /></font>
<font face="Arial Unicode MS, sans-serif" size="-1">
<p /><br />Me<br />
</font><br />
</blockquote>
</font>
</font>
</blockquote>
</font>
结束 HTML