首页 文章

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

提问于
浏览
1

我编写了一个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>

2 回答

  • 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

    你可以逃避这样:

    UPDATE 试试这个:

    <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;
    

    干杯

相关问题