阅读本文以了解在 Dreamweaver 中如何指定缺少的字符实体来替换 XSLT 的特殊字符。

注意:

用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章

指定缺少的字符实体

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

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

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

字符

实体代码

<(小于)

&lt;

&(与)

&amp;

>(大于)

&gt;

"(引号)

&quot;

‘(撇号)

&apos;

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

在浏览器中预览 XSL 文件时,Dreamweaver 会检查 XSL 文件是否有未定义的实体并在发现未定义的实体时通知您。

如果预览附加到 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> -------------------^

要纠正页面中的错误,必须手动为页面添加实体定义。

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

指定缺少的实体定义

  1. www.w3.org/TR/REC-html40/sgml/entities.html 的 W3C 网站的字符实体参考页中查找缺少的字符。

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

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

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

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

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

    在此示例中,您需要输入以下实体标签:<!ENTITY Egrave "&#200;">

    <!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。

本产品经 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 许可  Twitter™ 与 Facebook 中的内容不在 Creative Commons 的条款约束之下。

法律声明   |   在线隐私策略