如何插入

,

进入XSLT样式表,我一直得到这个错误:

XML解析错误:未定义的实体

实际上,我希望XSLT模板中有一个不间断的空格字符。


当前回答

我试图在HTML表中的空单元格上显示边框。我在空单元格中使用不间断空格的老技巧在xslt中不起作用。我用换行来达到同样的效果。我提到这一点只是为了以防你试图使用非间断空格的原因是为了给一个“空”的表格单元格提供一些内容,以打开单元格边界。

<br/>

其他回答

我不知道它是否有用,但我有这样的工作:

我定义了一个新的实体:

The healthy animal is up<nbsp />and<nbsp />do­ing.

然后我有一个新定义的模板:

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

解析后会得到:

"The healthy animal is up &nbsp; and &nbsp; doing"

我知道<nbsp/>几乎和&nbsp一样长,所以打字不多。

你可能想在文件的开头(在xml声明下面)添加这个实体的定义:

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

此外,您还可以添加更多的实体,如Ntilde, Aacute等。

当你使用以下语句时(没有disable-output-escaping!),你会得到一个不间断的空格:

< xsl: text > & # 160; < / xsl: text >

我试图在HTML表中的空单元格上显示边框。我在空单元格中使用不间断空格的老技巧在xslt中不起作用。我用换行来达到同样的效果。我提到这一点只是为了以防你试图使用非间断空格的原因是为了给一个“空”的表格单元格提供一些内容,以打开单元格边界。

<br/>

XSLT样式表必须是格式良好的XML。因为“&nbsp;”不是五个预定义的XML实体之一,所以它不能直接包含在样式表中。 所以回到你的解决方案,“&#160;”是你应该使用的“&nbsp;”的完美替代品。

例子:

<xsl:value-of select="$txtFName"/>&#160;<xsl:value-of select="$txtLName"/>