在XSLT中使用HTML实体(例如)
在XSLT中包含html实体的最佳方式是什么在XSLT中使用HTML实体(例如),xslt,Xslt,在XSLT中包含html实体的最佳方式是什么 <xsl:template match="/a/node"> <xsl:value-of select="."/> <xsl:text> </xsl:text> </xsl:template> 这个函数返回一个xsltparserror您可以使用CDATA部分 <xsl:text disable-output-escaping="yes">
<xsl:template match="/a/node">
<xsl:value-of select="."/>
<xsl:text> </xsl:text>
</xsl:template>
这个函数返回一个xsltparserror您可以使用CDATA部分
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
或者您可以在本地DTD中描述:
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
或者只使用 代码>而不是
这个函数返回一个xsltParserError
是的,这是因为
在XML或XSLT中不像在HTML中那样是预定义的实体
您可以只使用unicode字符,它代表: 代码>从xslt中使用html实体的另一种可能性是:
<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>
&;nbsp;
默认情况下,XSLT只处理五个基本实体:lt
、gt
、apos
、quot
和amp
。所有其他的都需要定义为提及。现在有了Unicode,使用命名字符实体通常会适得其反。出于这个原因,我建议使用Unicode字符作为不间断空格,而不是实体。或者,您可以使用实体和#160
;,而不是命名实体。使用命名实体使XML依赖于内联或外部DTD
文本标记之间的一个空格字符就足够了。也可以从的第二部分扩展该方法,并获得所有已知字符引用,如下所示:
<!DOCTYPE stylesheet [
<!ENTITY % w3centities-f PUBLIC "-//W3C//ENTITIES Combined Set//EN//XML"
"http://www.w3.org/2003/entities/2007/w3centities-f.ent">
%w3centities-f;
]>
...
<xsl:text> −30°</xsl:text>
...
&负的;30度;
与
方法相比,结果存在一定差异。后者将为所有类型的输出生成字符串文本,如
,甚至是
,这可能与您希望的不同。。。相反,通过xsl:output
设置为XSLT模板定义实体
因此,使用本地实体解析器防止XSLT引擎从Internet获取字符实体定义可能是明智的。JAXP或显式Xalan-J用户可能需要一个补丁,以便Xalan-J正确使用解析器。有关补丁下载和评论,请参阅我的博客。谢谢您提供的信息。我写了一篇短篇博文,内容是基于我在的模板中进行XSLT转换时所做的工作
博客帖子在这里:
> Sten Hougaard
< P>我发现所有这些解在空白空间中都产生了一个特征。
使用
为我解决了问题;但是#x20代码>也可以工作。有必要使用实体#x160我在Aku的DOCTYPE方法上运气不佳
在Windows2003服务器上的MSXML转换中,对我起作用的是
<xsl:text disable-output-escaping="yes">&#160;</xsl:text>
&#160;
有点像上面的混合体。谢谢你的贡献者 unicode字符 表示问号和方框,输出未转义的html实体对我来说很有用,谢谢。它不是x160,而是十进制160。这很漂亮-希望它更出名