Html “实体”;nbsp";已引用,但未声明

Html “实体”;nbsp";已引用,但未声明,html,css,xml,xslt-2.0,dtd,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> 西班牙语中“西班牙”的意思是“Espa”达贡他的名字,海怪 OutputXML: <test>The Spanish word for "Spain" is "Espa a" Dagon his Name, Sea

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

输入XML:

<test>The Spanish word for "Spain" is "Espa&nbsp;a" Dagon his Name, Sea Monster</test>
西班牙语中“西班牙”的意思是“Espa”达贡他的名字,海怪
OutputXML:

<test>The Spanish word for "Spain" is "Espa a" Dagon his Name, Sea Monster</test>
西班牙语中“西班牙”的意思是“Espa”达贡他的名字,海怪
XSL文件:我在doctype at下添加了实体nbsp声明的代码,并替换为实体,但仍然是相同的错误,实体“nbsp”被引用,但未声明

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


您可以像这样逃离nbsp:

更新 试试这个:

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

Cheers

您需要让输入声明它使用的实体,如中所述,例如

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

“西班牙”的西班牙语单词是“Espa”Dagon,他的名字是海怪

请注意,“西班牙”的西班牙语单词是“España”,因此这里使用的示例实体在这里没有任何意义。

解决方案。。。按如下方式使用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>
<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>

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

关于尖角和瓷砖的参考:
解决方案。。。按如下方式使用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>
<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>

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

关于尖角和瓷砖的参考:

这是我的XSL代码:我用正确的方法更新了我的帖子。很抱歉,我有一段时间没有使用XSL了。我的帖子现在有两种选择,您可以使用。请分享您的电子邮件id,因为我遇到了一个问题,无法解释“stackoverflow”的代码是lenthy。如果您想用XML解析器解析输入,请在twitter上找到我syfer_Darnight,我会给您发电子邮件(任何XSLT处理器通常都使用XML解析器解析输入文档))然后输入本身需要在DTD中声明该实体。请共享您的电子邮件id,因为我遇到了一个问题,无法解释“stackoverflow”代码是lenthy,请帮助me@Umaima,不,对不起,如果StackOverflow不适合你,我也帮不了你。在XSLT领域肯定有人做自由职业者或合同工,如果这是一种选择的话,请寻找可以发布工作描述的方面,并找到有能力和愿意做这项工作的人