我怎样才能插入
到XSLT样式表,我不断收到此错误:
XML解析错误:未定义的实体
基本上我想在XSLT模板非打破空间字符。
我怎样才能插入
到XSLT样式表,我不断收到此错误:
XML解析错误:未定义的实体
基本上我想在XSLT模板非打破空间字符。
使用实体代码 
代替。
是一个HTML“字符实体引用”。 有对XML非换空间没有命名的实体,因此,您使用的代码 
。
维基百科包括XML和HTML实体的名单 ,你可以看到有在XML仅5“预定义的实体”,但HTML已经超过200我还会点到创建一个空间( )在XSL其中有优秀的答案。
 
作品真的很好。 然而,它会显示在ANSI编码的那些奇怪的字符之一。 <xsl:text>
工作最适合我。
<xsl:text> </xsl:text>
你也可以这样做:
<xsl:text disable-output-escaping="yes"><![CDATA[ ]]></xsl:text>
用这个
<xsl:text disable-output-escaping="yes">&</xsl:text>nbsp;
编辑:Downvoters也许应该验证这工作第一(这样做,是解决这一问题的最通用的解决方案)
您可能要添加的定义在文件(以下XML声明)的开始这个实体:
<!DOCTYPE stylesheet [
<!ENTITY nbsp " " >
]>
你也可以添加更多的实体,如Ntilde,Aacute等。
除了雨果的答案就可以得到所有的已知字符引用在XSLT文件的法律,就像这样:
<!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>& –</xsl:text>
还存在该方法的结果一定的差异相比<xsl:text disable-output-escaping="yes">
之一。 后者是将要产生的字符串文字等
各种输出的,即使对<xsl:output method="text">
这可能恰好是从你可能希望有什么不同......相反,越来越为通过XSLT模板中定义的实体<!DOCTYPE ... <!ENTITY ...
总是会产生输出与你一致xsl:output
设置。
而且包括所有的字符引用时,它可能是明智的做法是使用本地实体解析器保持XSLT引擎从互联网获取字符实体的定义。 JAXP或明确的Xalan-J用户可能需要一个补丁的Xalan-J正确使用解析器。 见我的博客XSLT,实体,Java和Xalan的...补丁下载和评论。
当您使用以下(不含disable-output-escaping
!),你会得到一个非打破空间:
<xsl:text> </xsl:text>
XSLT样式表必须是格式良好的XML。 由于" "
没有之一五个预定义XML实体 ,它不能直接包含在样式表。 所以回到你的解决方案" "
是一个完美的替代的" "
你应该使用。
例:
<xsl:value-of select="$txtFName"/> <xsl:value-of select="$txtLName"/>
你也可以使用:
<xsl:value-of select="'&nbsp'"/>
记得放后的&或你会得到一个错误信息
尝试使用
<xsl:text> </xsl:text>
但是这取决于XSLT处理器使用的是:XSLT规范并不需要XSLT处理器,将其转换成“
”。
我试图在一个HTML表格中的空单元格显示边框。 我在空单元格使用非打破空间的老把戏不是从XSLT工作。 我用断行具有相同的效果。 我提到这一点,以防万一你试图使用非打破空间的原因是为了给一些内容,以“空”的表格单元格,以打开单元格边框。
<br/>