在 Dreamweaver 中为 XSLT 添加字符实体

上次更新日期: 2021年12月20日

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

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

指定缺少的字符实体

在 XSLT 中,某些字符不能在 特定上下文中使用。例如,您不能在标记之间的文本中或在属性值中使用小于号 (<) 和与号 (&)。如果不正确地使用这些字符,XSLT 变换引擎会报错。为了解决这个 故障,您可以指定字符实体来替换特殊 字符。

字符实体是一个代表其他字符的字符串。字符实体可以是 命名的或编号的。命名实体以 & 符号 (&) 开头,后跟名称或字符,并以分号 (;) 结尾。例如,< 代表左尖括号字符 (<)。编号实体的开头和结尾也是相同的 方式,只是用井号 (#) 和数字来指定字符。

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

字符

实体代码

<(小于)

<

&(与)

&

>(大于)

>

"(引号)

&quot;

‘(撇号)

&apos;

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

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

如果您预览附加到\nXSLT 文件的 XML 文件,或者预览包含 XSLT 变换的\n服务器端页面,则服务器或浏览器(而不是 Dreamweaver)\n会通知您存在未定义的实体。以下是当您请求通过包含缺失实体定义的 XSL 文件变换的\nXML 文件时,在 Internet Explorer 中可能收到的\n消息示例:引用未定义的实体"auml"。Error processing resource 'http://localhost/testthis/list.xsl'. 第 28 行,第 20 列 <p class=''test''>&auml;</p> -------------------^

要更正页面中的错误,您必须手动将实体定义添加到页面中。

引用未定义的实体"auml"。Error processing resource 'http://localhost/testthis/list.xsl'. 第 28 行,位置 20

<p class=''test''>&auml;</p>

-------------------^

指定缺少的实体定义

在 W3C 网站的字符实体引用页面查找缺失的字符,网址: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 -->

记下条目中的实体名称和实体代码。

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

有了这些信息后,切换到"代码"视图,并在 XSL 文件顶部(在 Doctype 声明之后,与其他实体标记一起)输入\n以下实体标记:

<!ENTITY entityname "entitycode;">

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

<!ENTITY Egrave "&#200;">

保存您的文件。

如果您重复使用相同的字符实体,您\n可能希望在使用\n"文件">"新建"时,将其定义永久添加到 Dreamweaver 默认创建的 XSL 文件中。

向 Dreamweaver 默认创建的 XSL\n文件添加实体定义

在 Dreamweaver 应用程序文件夹中找到以下配置文件,并在任何文本编辑器中打开它:

Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

查找名为 called mm_xslt_1 的声明:

<documenttypedeclaration id="mm_xslt_1">

在实体标记列表中输入新的实体标记,\n如下所示:

<!ENTITY entityname "entitycode;">

保存文件并重新启动 Dreamweaver。