首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在XSLT中使用HTML实体(例如 )

在XSLT中使用HTML实体(例如 )
EN

Stack Overflow用户
提问于 2008-08-28 08:55:35
回答 11查看 63K关注 0票数 65

在XSLT中包含html实体的最佳方式是什么?

<xsl:template match="/a/node">
    <xsl:value-of select="."/>
    <xsl:text>&nbsp;</xsl:text>
</xsl:template>

这个函数返回一个XsltParseError

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-08-28 09:02:13

您可以使用CDATA节

<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text>

或者您可以在本地DTD中描述它:

<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>

或者直接使用&#160;而不是&nbsp;

票数 123
EN

Stack Overflow用户

发布于 2011-10-01 01:36:43

还可以从aku's answer的第二部分扩展该方法,并获得所有已知的字符引用,如下所示:

<!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>&nbsp;&minus;30&deg;</xsl:text>

<xsl:text disable-output-escaping="yes">方法相比,计算结果有一定的差异。后者将为所有类型的输出生成像&nbsp;这样的字符串文字,甚至对于<xsl:output method="text">,这可能会与您希望的有所不同……相反,通过<!DOCTYPE ... <!ENTITY ...获取为XSLT模板定义的实体将始终生成与xsl:output设置一致的输出。

因此,使用本地实体解析器阻止XSLT引擎从Internet获取字符实体定义可能是明智的。JAXP或显式Xalan-J用户可能需要一个补丁才能使Xalan-J正确使用解析器。有关补丁下载和评论,请参阅我的博客XSLT, entities, Java, Xalan...

票数 24
EN

Stack Overflow用户

发布于 2008-08-28 09:10:04

在xslt中使用html实体的另一种可能性是:

<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档