指定缺少的字符实体

在 XSLT 中,某些上下文中不允许存在某些字符。例如,您无法在标签之间的文本或属性值中使用小于号 (<) 和"与"符号 (&)。如果错误地使用了这些字符,XSLT 转换引擎将向您显示错误。要解决此问题,您可以指定用于替代特殊字符的字符实体。

字符实体是表示其他字符的字符串。字符实体已被命名或编号。命名的实体以"与"符号 (&) 开头,后面是名称或字符,并以分号 (;) 结束。例如 &lt; 表示左尖括号字符 (<)。除了用哈希号 (#) 和数字来指定字符之外,编号的实体也以同样的方式开头和结束。

XSLT 具有以下五个预定义的实体:

字符 实体代码

<(小于)

&lt;

&(与)

&amp;

>(大于)

&gt;

"(引号)

&quot;

'(撇号)

&apos;

如果在 XSL 文件中使用其他字符实体,则需要在 XSL 文件的 DTD 部分中定义这些实体。Dreamweaver 提供了一些默认的实体定义,在 Dreamweaver 中创建的 XSL 文件的顶部可以看到这些默认的实体定义。这些默认的实体可以让您广泛地选择最常用的字符。

在浏览器中预览 XSL 文件时,Dreamweaver 将在 XSL 文件中检查未定义的实体。如果找到未定义的实体,Dreamweaver 将在消息框中通知您。

如果预览附加到 XSLT 文件中的 XML 文件,或者预览具有 XSLT 转换的服务器端页面,则服务器或浏览器(而不是 Dreamweaver)会通知您哪些是未定义的实体。例如,在请求由缺少实体定义的 XSL 文件转换的 XML 文件时,在 Internet Explorer 中可能会显示以下消息:

Reference to undefined entity 'auml'. Error processing resource 'http://localhost/testthis/list.xsl'. Line 28, Position 20 
<p class="test">&auml;</p>
-------------------^

若要在页面中更正此错误,需要手动将实体定义添加到页面中。

若要指定缺少的实体定义,请执行以下操作:

  1. 在 W3C Web 站点上的字符实体参考页面中查寻缺少的字符,网址为:www.w3.org/TR/REC-html40/sgml/entities.html。

    此 Web 页面包含 HTML 4 和 XHTML 1.0 中允许的 252 个实体。

    例如,如果缺少字符实体 Egrave,请在 W3C Web 页面上搜索"Egrave"。您将发现以下项:

    <!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, 
    U+00C8 ISOlat1 -->
    
  2. 记录该项中的实体名称和实体代码。

    在此示例中,Egrave 是实体名称,&#200 是实体代码。

  3. 了解此信息后,请切换到 Dreamweaver 的"代码"视图中,在 XSL 文件(在 Doctype 声明之后并且具有其他实体标签)的顶部输入以下实体标签:
    <!ENTITY entityname "entitycode;">
    

    在此示例中,您需要输入以下实体标签:

    <!ENTITY Egrave "&#200;">
    
  4. 保存您的文件。

如果要重复使用相同的字符实体,则可能需要在 XSL 文件中永久添加它们的定义,在使用"文件">"新建"时,默认情况下,Dreamweaver 会创建此 XSL 文件。

若要将实体定义添加到默认情况下 Dreamweaver 创建的 XSL 文件,请执行以下操作:

  1. 在 Dreamweaver 应用程序文件夹中查找以下配置文件,然后在任何文本编辑器中打开此文件:

    Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

  2. 查找名为 called mm_xslt_1 的声明:
    <documenttypedeclaration id="mm_xslt_1">
    
  3. 如下所示,请在实体标签列表中输入新的实体标签:
    <!ENTITY entityname "entitycode;">
    
  4. 保存文件并重新启动 Dreamweaver。




未找到评论

 

评论添加到页面后给我发送电子邮件 | 评论报告

当前页: http://www.ecnnl.com/doc/dreamweaver/8_cn/using/38_xml38.htm

 

E中荷|荷兰华人电子商务