什么是最好的方式,包括html实体在XSLT?

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

这一返回 XsltParseError

有帮助吗?

解决方案

你可以使用CDATA部分

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

或者你可以描述在当地DTD:

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

或只是使用 &#160; 而不是的 &nbsp;

其他提示

它也有可能延长的做法从第2部分 aku的答案 并得到所有名字提供参考,像这样:

<!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">, 和可能发生这种情况是不同的从什么你可能希望...相反,越来越实体定义为XSLT通过的模板 <!DOCTYPE ... <!ENTITY ... 总是会产生出符合你的 xsl:output 设置。

它可能是明智的,然后使用当地的实体解决程序,以保持XSLT发动机提取角色的实体的定义,从互联网上。JAXP或明确Xalan-J用户可能需要一个补丁Xalan-J使用的解决程序正确。看看我的博客 XSLT、实体、Java、Xalan... 对于补充下载和意见。

一个其他可能使用html实体内xslt是以下之一:

<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>

XSLT只处理的五个基本的实体默认: lt, gt, apos, quot, , amp.所有其他人需要的定义为 @Aku 提及。

这一返回 XsltParseError

是的,原因就是这 &nbsp; 是不是一个预先定义的实体在XML或XSLT,因为它是在HTML。

你只能使用的字符这 &nbsp; 代表: &#160;

现在,有Unicode,它通常会产生反作用的名字符的实体。我会推荐使用Unicode character为一个不间断的空间,而不是一个实体,只是为了这个原因。或者,可以使用的实体 &#160;的,而不是命名的实体。使用的命名的实体让你XML依赖于一个行内部或外部DTD。

我发现所有这些方案产生了一个字中的空白空间。

使用 <xsl:text> </xsl:text> 解决了这个问题对于我;但 <xsl:text>#x20;</xsl:text> 可能的工作。

谢谢您的信息。我已经写了一个短篇博客基于什么工作我为我所做的XSLT transformation在一个模板的 Dynamicweb CMS.

该博客是在这里: 如何添加实体XSLT模板.

/Sten Hougaard

有必要使用的实体 #x160;

我有没有运气DOCTYPE办法,从Aku.

什么工作,我可以尝试下列任将在一个Windows服务器2003年,

    <xsl:text disable-output-escaping="yes">&amp;#160;</xsl:text>

排序的混合。谢谢计算器的贡献者!

一个空间角色之间的文本标记应该是足够的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top