繁体   English   中英

转换期间忽略XSLT

[英]XSLT ignoring   during transformation

我有一个HTML文件,可以使用XSL将其转换为另一个HTML文件(只需对其结构进行调整,以便在大多数电子邮件客户端中看起来都不错)。

HTML是从其他系统收到的,我无法修改此HTML的生成方式。


我的问题是包含 标签 内。 XSL转换忽略了它。

HTML输入:

<span style="font-family: 'HelveticaNeue LT 45 Lt', serif; font-size: 12px; color:#000000">
  IMPORTANT: The loan is repayable by 10 payments.&nbsp;The first Direct Debit payment will be collected&nbsp;along with other payments that are already due&nbsp;on...
</span>

HTML输出:

<p class="bodytext" align="justify" style="font-size:14px; font-weight:200; font-align:justify;">
  IMPORTANT: The loan is repayable by 10 payments.The first Direct Debit payment will be collectedalong with any other payments that are already dueon...
</p>

两个空格都丢失了,文本被连接起来: payments.Thedueon


XSL有点复杂。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:character-map name="escape">    
  <xsl:output-character character="&#128;" string="&amp;euro;"/>    
  <xsl:output-character character="&#160;" string="&amp;nbsp;"/>
</xsl:character-map>
<xsl:output method="html" indent="yes" use-character-maps="escape"/>
<xsl:template match="body">
 <html>        
   <head>
    <meta name="generator" content="HTML EMail optimization by" />          
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
...

...
<xsl:template name="TextTemplate">
 <xsl:if test="not(starts-with(.,'XSLTButton'))">
  <xsl:value-of select="text()"/>          
 </xsl:if>
</xsl:template>

我正在使用Saxon 9.1.0.8

经过一番谷歌搜索后,我尝试使用xsl:character-mapxsl:preserve-space ,更改编码..但没有任何效果。

唯一有效的方法是在INPUT html中将[<!ENTITY nbsp "&#160;">]声明添加到DOCTYPE中,但是我不想在过程中创建其他步骤来仅添加此位。

请帮忙。 我应该添加些什么,以便XSL / Saxon不再忽略&nbsp;

支持DTD的XML解析器要求声明文档所引用的实体。 XSLT处理要求扩展实体引用,因此符合标准的XSLT处理器通常在其前端使用符合DTD意识的XML解析器。 如果继续输入使用未声明实体的处理输入,那么您将继续获得不令人满意的结果。

如果输入已经具有引用适当DTD的文档类型声明,则应尝试使用支持DTD的解析器。 如果不是,则可以注入这样的文档类型声明,也可以通过Tidy或类似的假定HTML DTD并扩展所有实体引用的处理器运行HTML。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM