实体“nbsp”已被引用,但未声明

时间:2017-05-30 06:06:27

标签: html css xml xslt-2.0 dtd

我编写了一个XSLT来将xml转换为xml。

输入XML:

<test>The Spanish word for "Spain" is "Espa&nbsp;a" Dagon his Name, Sea Monster</test>

OutputXML:

<test>The Spanish word for "Spain" is "Espa a" Dagon his Name, Sea Monster</test>

XSL FILE:我已经在doctype at下添加了实体nbsp声明的代码并替换为实体但仍然是相同的错误实体“nbsp”被引用,但未被声明。

<xsl:template match="test">
<test>
  <xsl:apply-templates/>
</test>

4 个答案:

答案 0 :(得分:1)

您需要让输入声明它使用的实体,如http://xsltransform.net/gVhD8QR中所做的那样,例如

<!DOCTYPE test [
  <!ENTITY nbsp "&#160;">
]>
<test>The Spanish word for "Spain" is "Espa&nbsp;a" Dagon his Name, Sea Monster</test>

请注意,西班牙语中的“西班牙语”是“España”,但是那里使用的示例实体无论如何都没有意义。

答案 1 :(得分:0)

一种解决方案 ...如下使用 CDATA

<test><![CDATA[ your text with &acute; &ecute; &icute; &Acute; &ntilde; ]]></test>

<test><![CDATA[The Spanish word for "Spain" is "Espa&ntilde;a" Dagon his Name, Sea Monster]]></test>

我知道回答这个问题的时间已经晚了,但我也知道它可以帮助其他人!

参考急症与急症: https://uniwebsidad.com/libros/xhtml/capitulo-3/codificacion-de-caracteres

答案 2 :(得分:0)

一种解决方案 ...如下使用 CDATA

<test><![CDATA[ your text with &acute; &ecute; &icute; &Acute; &ntilde; ]]></test>

<test><![CDATA[The Spanish word for "Spain" is "Espa&ntilde;a" Dagon his Name, Sea Monster]]></test>

我知道回答这个问题的时间已经晚了,但我也知道它可以帮助其他人!

参考急症与急症: https://uniwebsidad.com/libros/xhtml/capitulo-3/codificacion-de-caracteres

答案 3 :(得分:-1)

你可以逃避这样:

<强>更新 试试这个:

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

所以你最终的代码看起来像是:

<test>The Spanish word for "Spain" is "Espa<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;a" Dagon his Name, Sea Monster</test>

如果所有其他方法都失败了,请使用以下方法:

&#160;

干杯