如何在XSLT插入(How to insert   in XSLT)

2019-07-19 00:53发布

我怎样才能插入

 

到XSLT样式表,我不断收到此错误:

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

基本上我想在XSLT模板非打破空间字符。

Answer 1:

使用实体代码  代替。

  是一个HTML“字符实体引用”。 有对XML非换空间没有命名的实体,因此,您使用的代码 

维基百科包括XML和HTML实体的名单 ,你可以看到有在XML仅5“预定义的实体”,但HTML已经超过200我还会点到创建一个空间( )在XSL其中有优秀的答案。



Answer 2:

&#160; 作品真的很好。 然而,它会显示在ANSI编码的那些奇怪的字符之一。 <xsl:text>工作最适合我。

<xsl:text> </xsl:text>


Answer 3:

你也可以这样做:

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


Answer 4:

用这个

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

编辑:Downvoters也许应该验证这工作第一(这样做,是解决这一问题的最通用的解决方案)



Answer 5:

您可能要添加的定义在文件(以下XML声明)的开始这个实体:

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

你也可以添加更多的实体,如Ntilde,Aacute等。



Answer 6:

除了雨果的答案就可以得到所有的已知字符引用在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>&amp; &nbsp; &ndash;</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的...补丁下载和评论。



Answer 7:

当您使用以下(不含disable-output-escaping !),你会得到一个非打破空间:

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



Answer 8:

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

例:

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


Answer 9:

你也可以使用:

<xsl:value-of select="'&amp;nbsp'"/>

记得放后的&或你会得到一个错误信息



Answer 10:

尝试使用

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

但是这取决于XSLT处理器使用的是:XSLT规范并不需要XSLT处理器,将其转换成“ &nbsp; ”。



Answer 11:

我试图在一个HTML表格中的空单元格显示边框。 我在空单元格使用非打破空间的老把戏不是从XSLT工作。 我用断行具有相同的效果。 我提到这一点,以防万一你试图使用非打破空间的原因是为了给一些内容,以“空”的表格单元格,以打开单元格边框。

<br/>


文章来源: How to insert   in XSLT
标签: xslt