在 Dreamweaver 中新增 XSLT 字元實體

上次更新時間 2021年12月20日

請閱讀本文,了解如何在 Dreamweaver 中指定遺失的字元實體以取代 XSLT 的特殊字元。

Dreamweaver 和更高版本的用戶介面已經簡化。 因此,您在 Dreamweaver 和更高版本中可能會找不到本文所描述的一些選項。 如需詳細資訊,請參閱本文

指定遺失的字元實體

在 XSLT 中,某些字元不允許用於 特定內容中。例如,您不能在標記之間的文字中或在屬性值中使用小於符號 (<) 和 & 符號 (&)。如果這些字元使用不當,XSLT 轉換引擎會顯示 錯誤。要解決此 問題,您可以指定字元實體來取代特殊 字元。

字元實體是代表其他字元的字元字串。字元實體有具名或編號兩種。具名實體以 & 符號開頭,後接名稱或字元,並以分號 (;) 結尾。例如,< 代表左角括弧字元 (<)。編號實體的開始和結束方式也相同,不過是以雜湊符號 (#) 和數字來指定字元。

XSLT 有下列五個預先定義的實體:

字元

實體程式碼

< (小於)

<

& 符號

&

> (大於)

>

" (引號)

&quot;

‘ (所有格符號)

&apos;

如果您在 XSL 檔案中使用其他字元實體,您需要在 XSL 檔案的 DTD 區段中定義它們。Dreamweaver 提供數個預設實體定義,您可以在 Dreamweaver 中建立的 XSL 檔案頂端看到這些定義。這些預設實體涵蓋 最常用字元的廣泛選擇。

當 您在瀏覽器中預覽 XSL 檔案時,Dreamweaver 會檢查 XSL 檔案是否有未定義的實體,如果找到未定義 實體會通知您。

如果您預覽附加至 XSLT 檔案的 XML 檔案,或如果您預覽含有 XSLT 轉換的伺服器端頁面,伺服器或瀏覽器 (而非 Dreamweaver) 會通知您有未定義的實體。以下是當您請求由含有遺失實體定義之 XSL 檔案轉換的 XML 檔案時,在 Internet Explorer 中可能收到訊息 的範例:參考到未定義的實體 'auml'。Error processing resource 'http://localhost/testthis/list.xsl'. 行 28,位置 20 <p class=''test''>&auml;</p> -------------------^

若要更正頁面中的錯誤,您必須手動將實體定義新增到頁面。

參照未定義的實體 &apos;auml&apos;。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 中,查詢 遺失的字元。

此網頁包含 HTML 4 和 XHTML 1.0 中允許的 252 個實體。

例如,如果字元實體 Egrave 遺失,請在 W3C 網頁上搜尋「Egrave」。您將找到 下列項目:

<!ENTITY Egrave CDATA "&#200;" -- latin capital letter E with grave, U+00C8 ISOlat1 -->

記下項目中的實體名稱與實體代碼。

在範例中,Egrave 是實體名稱,而 &#200 是實體代碼。

有了這項資訊後,切換至「程式碼」檢視,並在您 XSL 檔案的頂端輸入下列實體標記 (在 Doctype 宣告之後與其他實體標記一起):

<!ENTITY entityname "entitycode;">

在範例中,您應該輸入下列實體標記:<!ENTITY Egrave "&#200;">

<!ENTITY Egrave "&#200;">

儲存檔案。

如果您重複使用相同的字元實體,您可能需要在 Adobe Dreamweaver 使用「檔案」>「新增」時預設建立的 XSL 檔案中,永久新增其定義。

將實體定義新增至 Adobe Dreamweaver 預設建立的 XSL 檔案

在 Adobe Dreamweaver 應用程式檔案夾中找到下列設定檔案,並在任何文字編輯器中開啟:

Configuration/DocumentTypes/MMDocumentTypeDeclarations.xml

尋找名為 mm_xslt_1 的宣告:

<documenttypedeclaration id="mm_xslt_1">

在實體標記清單中輸入新的實體標記,如下所示:

<!ENTITY entityname "entitycode;">

儲存檔案並重新啟動 Dreamweaver。