了解如何在 Dreamweaver 中執行伺服器端 XSL 轉換。建立 XSLT 頁面,以及將 HTML 轉換成 XSLT 頁面。

註解:

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

執行伺服器端 XSL 轉換的流程

您可以在伺服器上執行伺服器端 XSL 轉換。在您建立可以顯示 XML 資料的頁面時,請先閱讀有關伺服器端與用戶端 XSL 轉換,以及有關在頁面上使用 XML 與 XSL 的相關資訊。

註解:

您的伺服器必須正確設定才能執行伺服器端轉換。如需詳細資訊,請聯絡您的伺服器管理員。

伺服器端 XSL 轉換的一般執行工作流程如下 (個別步驟將分別於其他主題中加以說明):

1. 設定 Dreamweaver 網站。

2. 選擇伺服器技術,並設定應用程式伺服器。

3. 測試應用程式伺服器。

例如,建立一個要求處理的頁面,然後確定應用程式的確有處理該頁面。

4. 建立 XSLT 片段或頁面,或是將 HTML 頁面轉換為 XSLT 頁面。

  • 在您的 Dreamweaver 網站中建立一個 XSLT 片段或完整的 XSLT 頁面。

  • 將現有的 HTML 頁面轉成完整的 XSLT 頁面。

5. 將 XML 資料來源附加至頁面。

6. 將 XML 資料繫結至 XSLT 片段或整個 XSLT 頁面以顯示該資料。

7. 如果適當的話,請新增「重複區域」XSLT 物件至包含 XML 資料預留位置的表格或表格列。

8. 插入參考資料。

  • 若要將參考資料插入至動態網頁的 XSLT 片段,請使用 XSL 轉換伺服器行為。

  • 若要將參考資料插入動態網頁的完整 XSLT 頁面中,請刪除動態網頁中所有的 HTML 程式碼,然後使用「XSL 轉換」伺服器行為。

9. 發佈網頁與片段。

將動態網頁和 XSLT 片段 (或完整的 XSLT 頁面) 公佈到您的應用程式伺服器。如果您使用本機的 XML 檔案,您也需要將該檔案公佈出來。

10. 在瀏覽器中檢視動態網頁。

當您這麼做時,應用程式伺服器會轉換 XML 資料、將其插入動態頁面中,然後在瀏覽器中顯示。

建立 XSLT 頁面

您可以建立讓您在網頁上顯示 XML 資料的 XSLT 頁面。您也可以建立完整的 XSLT 頁面 (包含 <body> 標籤和 <head> 標籤的 XSLT 頁面),也可以建立 XSLT 片段。當您建立 XSLT 片段時,就是建立一個不包含 body 或 head 標籤的獨立檔案,亦即稍後要插入至動態網頁的簡單程式碼片段。

註解:

如果您要從現有的 XSLT 頁面開始著手,就必須將 XML 資料來源附加至此頁面。

  1. 選取「檔案>開新檔案」。
  2. 在「新文件」對話方塊的「空白頁面」類別中,從「頁面類型」欄中選取下列其中一項:
    • 選取 XSLT (整個頁面) 以建立整個 XSLT 頁面。

    • 選取 XSLT (片段) 以建立 XSLT 片段。

  3. 按一下「建立」,並在「尋找 XML 來源」對話方塊中執行下列其中一項:
    • 選取「在我的電腦或區域網路上附加本機檔案」,按一下「瀏覽」按鈕,瀏覽至位於電腦上的本機 XML 檔案,然後按一下「確定」。
    • 選取「在 Internet 上附加遠端檔案」,輸入位於網際網路上的 XML 檔案的 URL (例如來自 RSS 反饋的檔案),然後按一下「確定」。

    註解:

    按下「取消」按鈕將產生一個沒有附加 XML 資料來源的新的 XSLT 頁面。

    「繫結」面板會填入 XML 資料來源的綱要

    繫結面板
    繫結面板

    下面的表格說明了綱要內可能會出現的各種元素:

    元素

    代表

    細節

    <>

    必要的非重複 XML 元素

    只在其父節點內出現一次的元素

    <>+

    重複的 XML 元素

    在其父節點內出現一或多次的元素

    <>+

    選擇性的 XML 元素

    在其父節點內出現零或多次的元素

    粗體的元素節點

    目前的內容元素

    插入點位在重複區域內的一般重複元素

    @

    XML 屬性

     

     

  4. 以 .xsl 或 .xslt 的副檔名 (預設值是 .xsl) 來儲存您新建立的頁面 (「檔案>儲存檔案」)。

將 HTML 頁面轉換成 XSLT 頁面

您也可以將現有的 HTML 頁面轉換成 XSLT 頁面。例如,如果您已經預先設計好要加入 XML 資料的靜態網頁,便可以將該頁面轉換成 XSLT 頁面,而不需建立 XSLT 頁面和從頭開始重新設計頁面。

  1. 開啟您想要轉換的 HTML 頁面。
  2. 選取「檔案>轉換>XSLT 1.0」。

    「文件」視窗中會開啟該頁面的複本。新的頁面為 XSL 樣式表,儲存的副檔名為 .xsl。

附加 XML 資料來源

如果您從現有的 XSLT 頁面開始著手,或如果您在使用 Dreamweaver 建立新 XSLT 頁面時沒有附加 XML 資料來源,便需要使用「繫結」面板來附加 XML 資料來源。

  1. 在「繫結」面板 (「視窗>繫結」) 中,按一下 XML 連結。
    在「繫結」面板中按一下「XML」
    在「繫結」面板中按一下「XML」

    註解:

    您也可以按一下「繫結」面板右上角的「來源」連結,以新增 XML 資料來源。

  2. 請執行下列其中一項作業:
    • 選取「在我的電腦或區域網路上附加本機檔案」,按一下「瀏覽」按鈕,瀏覽至位於電腦上的本機 XML 檔案,然後按一下「確定」。

    • 選取「在 Internet 上附加遠端檔案」,並輸入位於網際網路上的 XML 檔案的 URL (例如來自 RSS 反饋的檔案)。

  3. 按一下「確定」以關閉「尋找 XML 來源」對話方塊。

    「繫結」面板會填入 XML 資料來源的綱要。

顯示 XSLT 頁面中的 XML 資料

建立了 XSLT 頁面且附加 XML 資料來源後,您就可以將資料繫結到該頁面。若要這麼做,請將 XML 資料預留位置加入頁面,然後使用「XPath 運算式建立器」或「屬性」檢視窗,將要顯示於頁面上的選取資料加以格式化處理。

  1. 開啟有附加 XML 資料來源的 XSLT 頁面。
  2. (選擇性) 選取「插入>表格」,在頁面中加入表格。表格可以協助您組織 XML 資料。

    註解:

    在大部分情況下,您需使用「重複區域」XSLT 物件以便在頁面上顯示重複 XML 元素。在這種情況下,您可以建立只包含一或多欄的單列表格;或者,如果想要加入表格標題,可以建立只有兩列的表格。

  3. 在「繫結」面板中,選取某個 XML 元素,然後將它拖曳到您要在頁面上插入資料的地方。
    選取「繫結」面板中的 XML 元素
    選取「繫結」面板中的 XML 元素

    XML 資料預留位置便會出現在頁面上, 而預留位置會反白標示並包含在大括號之中。預留位置會使用 XPath (XML 路徑語言) 語法以描述該 XML 綱要的階層式結構。舉例來說,如果您將子元素 title 拖曳到頁面上,而這個元素具有父元素 rsschannelitem,那麼此動態內容預留位置的語法就會是 {rss/channel/item/title}。

    按兩下頁面上的 XML 資料預留位置,開啟「XPath 運算式建立器」。「XPath 運算式建立器」能讓您將選取的資料格式化,或從 XML 綱要選取其他項目。

  4. (選擇性) 選取一個 XML 資料預留位置,並將樣式套用至此位置以將樣式套用至您的 XML 資料中,就像其他使用「屬性」檢視窗或「CSS 樣式」面板的內容一樣。或者,您可以使用「設計階段樣式表」以將樣式套用至 XSLT 片段。每一種方法都有其優點與限制。
  5. 在瀏覽器中預覽您的成果 (「檔案>在瀏覽器中預覽」)。

    註解:

    當您使用「在瀏覽器中預覽」來預覽您的成果時,Dreamweaver 不會在使用應用程式伺服器的情況下執行內部 XSL 轉換。

顯示重複的 XML 元素

「重複區域」XSLT 物件可以讓您在網頁中顯示來自 XML 資料來源的重複元素。例如,如果您是從新聞反饋來顯示文章標題和說明,而該新聞反饋包含 10 - 20 篇文章,則 XML 檔案中的每一個標題和描述都可能會是重複元素的子元素。

「設計」檢視中任何含有 XML 資料預留位置的區域都可以變成重複區域, 然而,最常見的區域是表格、表格列或一系列的表格列。

  1. 在「設計」檢視中,選取含有一或多個 XML 資料預留位置的區域。

    選取的項目並無特定限制,可以包含表格、表格列,甚或是文字的段落都可以。

    設計檢視
    設計檢視

    註解:

    若要精確地選取頁面上的某個區域,可以使用「文件」視窗左下角的標籤選取器。例如,如果這個區域是一個表格,請在頁面上的表格內按一下,然後按一下標籤選取器中的標籤。

  2. 請執行下列其中一項作業
    • 選取「插入>XSLT 物件>重複區域」。

    • 在「插入」面板的 XSLT 類別中,按一下「重複區域」按鈕。

  3. 在「XPath 運算式建立器」中,選取以小加號標示的重複元素。
    XPath 運算式建立器
    XPath 運算式建立器

  4. 按一下「確定」。

    在「文件」視窗中,重複區域的四週會出現細細的灰色外框。當您在瀏覽器中預覽您的成果時 (「檔案>在瀏覽器中預覽」),灰色的外框會消失不見,取而代之的是在展開的選取區域中,顯示您在 XML 檔案中指定的重複區域。

    當您將「重複區域」XSLT 物件加入到頁面時,會截斷「文件」視窗中的 XML 資料預留位置。這是因為 Dreamweaver 會截斷 XML 資料預留位置的 XPath,以便使它能相對於重複元素的路徑。

設定重複區域 (XSL) 屬性

在「屬性」檢視窗中,您可以選取不同的 XML 節點來建立重複區域。

  1. 在「選取」方塊中,輸入一個新節點,然後按下閃電圖示,從出現的 XML 綱要樹狀結構選取該節點。

編輯重複區域 XSLT 物件

在區域中加入「重複區域」XSLT 物件之後,您可以使用「屬性」檢視窗來進行編輯。

  1. 按一下圍繞在重複區域外的灰色標籤,以選取此物件。
  2. 在「屬性」檢視窗 (「視窗 > 屬性」) 中,按一下「選取」文字欄位旁的動態圖示。
  3. 在「XPATH 運算式建立器」中進行變更,然後按一下「確定」。

在動態網頁中插入 XSLT 片段

一旦建立 XSLT 片段後,您便可以使用「XSL 轉換」伺服器行為,將此片段插入動態網頁中。當您在頁面中加入伺服器行為並在瀏覽器中檢視頁面時,應用程式伺服器就會執行轉換,以顯示來自所選 XSLT 片段的 XML 資料。Dreamweaver 支援 ColdFusion、ASP 或 PHP 頁面的 XSL 轉換。

註解:

如果您想要在動態網頁中插入整個 XSLT 頁面的內容,程序也是完全一樣的。在使用「XSL 轉換」伺服器行為將插入完整的 XSLT 頁面前,請先刪除該動態網頁的所有 HTML 程式碼。

  1. 開啟現有的 ColdFusion、ASP 或 PHP 頁面。
  2. 在「設計」檢視中,將插入點放在您要插入 XSLT 片段的地方。

    註解:

    插入 XSLT 片段時,在頁面上放置插入點之後,應該一律要按一下「顯示程式碼和設計檢視」按鈕,這樣就可以確認插入點是位於正確的位置。如果插入點沒有位於正確的位置,您可能需要按一下「程式碼」檢視中的某個地方,以便將插入點放在您要的位置。

  3. 在「伺服器行為」面板 (「視窗>伺服器行為」) 中,按一下「加號」(+) 按鈕,然後選取「XSL 轉換」。
    伺服器行為面板
    伺服器行為面板

  4. 在「XSL 轉換」對話方塊中,按一下「瀏覽」按鈕,然後瀏覽 XSLT 片段或整個 XSLT 網頁。

    Dreamweaver 會在旁邊的文字欄位中,填入附加至指定片段的 XML 檔案的檔案路徑或 URL。若要變更這項設定,請按一下「瀏覽」按鈕,瀏覽至另一個檔案。

  5. (選擇性) 按一下「加號」(+) 按鈕,以新增一個 XSLT 參數。
  6. 按一下「確定」,將參考插入該頁面中的 XSLT 片段。您無法在這裡編輯 XSLT 片段, 您可以按兩下片段,以開啟它的原始檔案及進行編輯。

    這時在包含執行階段圖庫檔案的網站根資料夾中,會建立一個 includes/MM_XSLTransform/ 資料夾。應用程式伺服器會使用此檔案內所定義的函數來執行轉換。

  7. 將動態網頁上傳到伺服器 (「網站>上傳」),然後按一下「是」,加入相關檔案。包含 XSLT 片段的檔案、包含資料的 XML 檔案,以及所產生的執行階段圖庫檔案都必須位於伺服器上,頁面才能正確顯示 (如果您選取遠端 XML 檔案做為資料來源,這個檔案必須位於網際網路上的某個位置)。

從動態網頁中刪除 XSLT 片段

您可以刪除用來插入 XSLT 片段的「XSL 轉換」伺服器行為,藉此移除網頁上的 XSLT 片段。刪除伺服器行為只會刪除 XSLT 片段,而不會刪除相關聯的 XML、XSLT 或執行階段圖庫檔案。

  1. 在「伺服器行為」面板 (「視窗>伺服器行為」) 中,選取您要刪除的「XSL 轉換」伺服器行為。
  2. 按一下減號 (-) 按鈕。

    註解:

    您應該一律採取這種方式來移除伺服器行為。手動刪除產生的程式碼只能刪除部分的伺服器行為,即使該伺服器行為已經從「伺服器行為」面板中消失,卻還是沒有完全刪除。

編輯 XSL 轉換伺服器行為

將 XSLT 片段加入至動態網頁後,就可以隨時編輯該「XSL 轉換」伺服器行為。

  1. 在「伺服器行為」面板 (「視窗>伺服器行為」) 中,按兩下您要編輯的「XSL 轉換」伺服器行為。
  2. 進行變更並按一下「確定」。

您可以建立當使用者從 XML 資料中按一下指定單字或單字組時,會連結到特定 URL 之 XSLT 頁面上的動態連結。如需完整指示,請參閱 Dreamweaver 勘誤表,網址為 www.adobe.com/go/dw_documentation_tw

將樣式套用至 XSLT 片段

當您建立一個完整的 XSLT 頁面 (也就是說,一個包含 <body><head> 標籤的 XSLT 頁面),您便可以顯示該頁面上的 XML 資料,然後像其他內容一樣,使用「屬性」檢視窗或「CSS 樣式」面板將該資料格式化。當您建立了供插入動態網頁中的 XSLT 片段時 (例如,用於插入 ASP、PHP 或 Cold Fusion 頁面中的片段),該片段和動態網頁的樣式呈現會變得更複雜。雖然您是和動態網頁分開使用 XSLT 片段,但請務必記住,片段是設計成在動態網頁中使用,XSLT 片段的輸出最終會出現在動態網頁 <body> 標籤內的某個地方。在這個工作流程的前提下,請務必確認沒有在 XSLT 片段中包含 <head> 元素 (例如樣式定義或外部樣式表的連結)。這麼做會造成應用程式伺服器將這些元素放入動態網頁的 <body> 中,進而產生無效的標記。

例如,您可能想要建立一個可以插入動態網頁的 XSLT 片段,而且想要使用和該動態網頁相同的外部樣式表來將片段格式化。如果您將相同的樣式表附加至該片段,則產生的 HTML 頁面將包含該樣式表一樣的連結 (一個位在動態網頁的 <head> 區段,另一個位在該頁面的 <body> 區段,即 XSLT 片段內容會出現的區段)。您應該使用設計階段樣式表來參考外部樣式表,而不是使用這個方法。

格式化 XSLT 片段的內容時,請使用下列工作流程:

  • 首先,將外部樣式表附加至動態網頁 (您可以使用這個最佳實作,將樣式套用至任何網頁的內容)。

  • 接下來,以設計階段樣式表的方式,將相同的外部樣式表附加至 XSLT 片段。如同名稱的含意,設計階段樣式表只能用於 Dreamweaver「設計」檢視中。

    完成先前的兩個步驟之後,您可以使用附加至動態網頁的相同樣式表,在 XSLT 片段中建立新的樣式。得出的 HTML 頁面會較乾淨 (因為該樣式表的參考只會在使用 Dreamweaver 時才有效),而該片段仍會在「設計」檢視中顯示適當的樣式。此外,當您在「設計」檢視中檢視動態網頁,或在瀏覽器中預覽動態網頁時,所有的樣式都會套用至該片段和動態網頁中。

註解:

如果您在瀏覽器中預覽 XSLT 片段,瀏覽器並不會顯示樣式, 您應該要在瀏覽器中預覽動態網頁,以查看動態網頁內容中的 XSLT 片段。

使用參數進行 XSL 轉換

在網頁中加入「XSL 轉換」伺服器行為時,您可以定義 XSL 轉換的參數。參數可以控制 XML 資料的處理及顯示方式, 例如,您可以使用參數來識別及列出來自新聞反饋的某特定文章, 當該頁面載入瀏覽器時,只有您以參數指定的文章才會顯示出來。

在 XSL 轉換中加入 XSLT 參數

  1. 開啟「XSL 轉換」對話方塊。您可以在「伺服器行為」面板上按兩下「XSL 轉換」伺服器行為 (「視窗>伺服器行為」),或加入一個新「XSL 轉換」伺服器行為來執行這項工作。
  2. 在「XSL 轉換」對話方塊中,按一下 XSLT 參數旁的「加號」(+) 按鈕。
    「XSL 轉換」對話方塊
    「XSL 轉換」對話方塊

  3. 在「新增參數」對話方塊中的「名稱」方塊內輸入參數名稱。名字只可以包含英數字元。且不能包含空格。
  4. 請執行下列其中一項作業:
    • 如果想要使用靜態值,請在「值」方塊中輸入您要的值。

    • 如果想要使用動態值,請按一下「值」方塊旁的動態圖示,完成「動態資料」對話方塊,然後按一下「確定」。如需詳細資訊,請按一下「動態資料」對話方塊中的「說明」按鈕。

  5. 在「預設值」方塊中,輸入當頁面沒有收到執行階段值時要讓參數使用的值,並按一下「確定」。

編輯 XSLT 參數

  1. 開啟「XSL 轉換」對話方塊。您可以在「伺服器行為」面板上按兩下「XSL 轉換」伺服器行為 (「視窗>伺服器行為」),或加入一個新「XSL 轉換」伺服器行為來執行這項工作。
  2. 從 XSLT 參數清單中選取參數。
  3. 按一下「編輯」按鈕。
  4. 進行變更並按一下「確定」。

刪除 XSLT 參數

  1. 開啟「XSL 轉換」對話方塊。您可以在「伺服器行為」面板上按兩下「XSL 轉換」伺服器行為 (「視窗>伺服器行為」),或加入一個新「XSL 轉換」伺服器行為來執行這項工作。
  2. 從 XSLT 參數清單中選取參數。
  3. 按一下減號 (-) 按鈕。

建立並編輯條件 XSLT 區域

您可以在 XSLT 頁面上建立簡單的條件區域或多重條件區域。您可以在「設計」檢視中選取元素,並將條件區域套用至該選取項目,或您可以只將條件區域插入文件中有插入點的位置。

例如,如果您想要在該項目無法使用時,在項目價格旁顯示「無法使用」的字樣,可以在該頁面鍵入文字「無法使用」再選取,然後將條件區域套用至選取的文字。Dreamweaver 會以 <xsl:if> 標籤包圍該選取的項目,並且當資料符合條件運算式的條件時,只在網頁上顯示「無法使用」這幾個字。

套用條件 XSLT 區域

您可以撰寫簡單條件運算式,並將之插入 XSLT 頁面中。如果您在開啟「條件區域」對話方塊時已選取內容,則該內容會被圍繞在一個 <xsl:if> 區塊之中。如果沒有選取內容,則會在頁面的插入點上加入 <xsl:if> 區塊。因此,您最好從這個對話方塊開始著手,然後在「程式碼」檢視中自訂運算式。

<xsl:if> 元素類似於在其他語言中的 if 陳述式。該元素提供一種方法,讓您測試條件並根據結果採取一系列行動。 <xsl:if> 元素能讓您測試運算式是否為單一 true 或是 false 值。

  1. 選取「插入 > XSLT 物件 > 條件區域」,或者在「插入」面板的 XLST 類別中按一下「條件區域」圖示。
  2. 在「條件區域」對話方塊中,輸入要用在區域的條件運算式。

    在下面的範例中,您想要測試該內容節點的 @available 屬性值是否為 true

    「條件區域」對話方塊
    「條件區域」對話方塊

  3. 按一下「確定」。

    您的 XSLT 頁面會插入下面的程式碼:

    <xsl:if test="@available=&apos;true&apos;"> 
        Content goes here 
    </xsl:if>

    註解:

    您需要將字串值 (例如 true) 圍上引號。Dreamweaver 會替您將這些引號編碼 (&apos;) 讓它們能輸入為有效的 XHTML。

    除了測試節點的值以外,您可以使用條件陳述式中任何支援的 XSLT 函數。測試您 XML 檔案中目前節點的條件。在下面的範例中,您要測試結果集中的最後節點:

    測試結果集中的最後節點
    測試結果集中的最後節點

    如需有關撰寫條件運算式的詳細資訊和範例,請參閱「參考」面板 (「說明 > 參考」) 中的 <xsl:if> 區段。

套用多重條件 XSLT 區域

您可以撰寫簡單條件運算式,並將之插入 XSLT 頁面中。如果您在開啟「條件區域」對話方塊時已選取內容,則該內容會被圍繞在一個 <xsl:choose> 區塊之中。如果沒有選取內容,則會將 <xsl:choose> 區塊加入至頁面的插入點上。因此,您最好從這個對話方塊開始著手,然後在「程式碼」檢視中自訂運算式。

<xsl:choose> 元素類似於在其他語言中的 case 陳述式。該元素提供一種方法,讓您測試條件並根據結果採取一系列行動。 <xsl:choose> 元素能讓您測試多個條件。

  1. 選取「插入 > XSLT 物件 > 多重條件區域」,或者在「插入」面板的 XLST 類別中按一下「多重條件區域」圖示。
  2. 在「多重條件區域」對話方塊中,輸入第一個條件。

    在下面的範例中,您想要測試該內容節點的 price 子元素是否小於 5。

    「多重條件區域」對話方塊
    「多重條件區域」對話方塊

  3. 按一下「確定」。

    在範例中,您的 XSLT 頁面會插入下面的程式碼:

    <xsl:choose> 
        <xsl:when test="price&lt;5"> 
            Content goes here 
        </xsl:when> 
        <xsl:otherwise> 
            Content goes here 
        </xsl:otherwise> 
    </xsl:choose>
  4. 若要插入另一個條件,請將插入點放置在 <xsl:when> 標籤配對之間的「程式碼」檢視中,或放在 <xsl:otherwise> 標籤的前面,然後插入一個條件區域 (「插入>XSLT 物件>條件區域」)。

    指定條件後,按一下「確定」,隨即會在 <xsl:choose> 區塊中插入另一個 <xsl:when> 標籤。

    如需有關撰寫條件運算式的詳細資訊和範例,請參閱「參考」面板 (「說明 > 參考」) 中的 <xsl:choose> 區段。

設定條件區域 (If) 屬性

這個「設定條件區域屬性」檢視窗是用來變更用於您 XSL 頁面的條件區域之中的條件。條件區域會測試該條件並根據結果採取一系列的行動。

  1. 在「測試」方塊中輸入新條件,然後按 Enter 鍵。

設定條件 (When) 屬性

這個「設定條件區域屬性」檢視窗是用來變更用於您 XSL 頁面的多重條件區域之中的條件。多重條件區域會測試該條件並根據結果採取一系列的行動。

  1. 在「測試」方塊中輸入新條件,然後按 Enter 鍵。

插入 XSL 註解

您可以將 XSL 註解標籤加入至文件,或用 XSL 標籤將選取範圍包圍起來。

新增 XSL 註解標籤至文件

  1. 請執行下列其中一項作業:
    • 在「設計」檢視中,選取「插入>XSLT 物件>XSL 註解」,輸入該註解的內容 (或將該文字方塊保留空白),然後按一下「確定」。

    • 在「程式碼」檢視中,選取「插入>XSLT 物件>XSL 註解」。

    註解:

    您也可以在「插入」面板的 XSLT 類別中按一下「XSL 註解」圖示。

用 XSL 註解標籤將選取範圍包圍起來

  1. 切換到「程式碼」檢視 (「檢視 > 程式碼」)。
  2. 選取您想要註解的程式碼。
  3. 在「編碼」工具列上,按一下「套用註解」按鈕,然後選取「套用 <xsl:comment></xsl:comment> 註解」。

使用 XPath 運算式建立器,將運算式加入 XML 資料中

XPath (XML 路徑語言) 是一種非 XML 的語法,用來指出 XML 文件的部分路徑。它最常用來做為 XML 資料的查詢語言,就如同 SQL 語言是用來查詢資料庫。如需有關 XPath 的詳細資訊,請參閱 W3C 網站上的 XPath 語言規格,網址是 www.w3.org/TR/xpath

「XPath 運算式建立器」是 Dreamweaver 的一項功能,可讓您建立簡單 XPath 運算式以便識別特定節點與重複區域。使用此方法取代從 XML 綱要樹狀結構拖曳數值的優點是,您可以將顯示的值格式化。開啟「XPath 運算式建立器」對話方塊時,會依據插入點在 XSL 檔案中的位置,辨識目前的內容。XML 綱要樹狀結構中目前的內容是粗體。當您在此對話方塊內進行選取時,會產生相對於您目前內容的正確 XPath 陳述式。這樣將簡化初學者和進階使用者撰寫正確 XPath 運算式的過程。

註解:

此功能的用意在於協助您建立簡單的 XPath 運算式,以識別特定節點或重複區域之用。它無法讓您以手動方式編輯運算式。如果您需要建立複雜的運算式,可以使用「XPath 運算式建立器」來開始,然後在「程式碼」檢視或以「屬性」檢視窗中自訂您的運算式。

建立 XPath 運算式來識別特定節點

  1. 按兩下頁面上的 XML 資料預留位置,開啟「XPath 運算式建立器」。
  2. 在「XPath 運算式建立器」(動態文字) 對話方塊中,選取 XML 綱要樹狀結構中的任一個節點。

    正確的 XPath 運算式便會寫入「運算式」方塊中,以識別該節點。

    註解:

    如果您在 XML 綱要樹狀結構中選取另一個節點,則運算式會隨您的選擇改變。

    在下面的範例中,您要顯示 item 節點的 price 子元素:

    XPath 運算式建立器 (動態文字) 對話方塊
    XPath 運算式建立器 (動態文字) 對話方塊

    此選取項目會在您的 XSLT 頁面中插入下面的程式碼:

    <xsl:value-of select="price"/>
  3. (選擇性) 您也可以從「格式」彈出式選單選取格式化選項。

    當您的節點值傳回一個數字時,將選取項目格式化是很有用的。Dreamweaver 會提供一份預先定義的格式化函式清單。如需可用的格式化函式與範例的完整清單,請參閱「參考」面板。

    在下面範例中,您要將 price 子元素格式化為有兩個小數位數的貨幣:

    將 price 子元素格式化為有兩個小數位數的貨幣
    將 price 子元素格式化為有兩個小數位數的貨幣

    這些選項會在您的 XSLT 頁面插入下面的程式碼:<xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>

    <xsl:value-of select="format-number(provider/store/items/item/price,'$#.00')"/>
  4. 按一下「確定」。
  5. 若要顯示 XML 檔案中的每一個節點值,請將重複區域套用到包含動態文字的元素 (例如,HTML 表格列或段落)。

    如需有關選取節點以傳回值的詳細資訊與範例,請參閱「參考」面板中的 <xsl:value-of/> 區段。

選取要重複的節點

您可以選取要重複的節點,以及 (選擇性) 要用來篩選結果的節點。在「XPath 運算式建立器」對話方塊中,您的選取內容會被圈繞在一個 <xsl:for-each> 區塊之中。如果沒有選取內容,則會將 <xsl:for-each> 區塊輸入至您游標的插入點處。

  1. 按兩下頁面上的 XML 資料預留位置,開啟「XPath 運算式建立器」。
  2. 在「XPath 運算式建立器」(重複區域) 對話方塊中,選取要在 XML 綱要樹狀結構中重複的項目。

    正確的 XPath 運算式便會寫入「運算式」方塊中,以識別該節點。

    註解:

    XML 綱要樹狀結構中重複的項目會以加號 (+) 符號標示。

    在下面範例中,您想要在 XML 檔案中重複每一個 item 節點。

    XPath 運算式建立器 (重複區域) 對話方塊
    XPath 運算式建立器 (重複區域) 對話方塊

    當您按一下「確定」時,下面的程式碼便會插入到您的 XSLT 頁面:

    <xsl:for-each select="provider/store/items/item"> 
     Content goes here 
    </xsl:for-each>

    在某些情況下,您可能想要使用重複節點的子集 例如,您可能只想要屬性有特定值的項目。在這個情況下,您需要建立一個篩選器。

篩選要重複的資料

使用篩選器來辨識具有特定屬性值的重複節點。

  1. 在 XML 綱要樹狀結構中,選取一個要重複的節點。
  2. 按一下「建立篩選器」展開按鈕。
  3. 按一下加號 (+) 按鈕,建立空白篩選器。
  4. 在下面欄位輸入篩選準則:

    篩選

    指定含有您想要用來篩選資料的重複節點。彈出式選單提供一份父節點的清單,以相對於您在 XML 綱要樹狀結構選取的節點。

    位置

    指定要用來限制結果的「篩選」節點的屬性或子元素。您可以從彈出式選單中選取屬性或子元素,或者可以在這個欄位中輸入自己的 XPath 運算式,以識別存在於綱要樹狀結構下階的子節點。

    運算子

    指定用於篩選器運算式中的比較運算子。

    指定「篩選」節點中要檢查的值。輸入該值。如果您的 XSLT 頁面已定義動態參數,那麼您可以從彈出式選單選取其中一個。

  5. 若要指定另一個篩選器,請再次按一下加號 (+) 按鈕。

    當您在彈出式選單輸入值或進行選取時,「運算式」方塊中的 XPath 運算式會跟著改變。

    在下面的範例中,您要將結果集限制在其 @available 屬性值為 true 的那些 item 節點。

    將結果集限制在其 @available 屬性值為 true 的那些 item 節點
    將結果集限制在其 @available 屬性值為 true 的那些 item 節點

    當您按一下「確定」時,下面的程式碼便會插入到您的 XSLT 頁面:<xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]"> Content goes here </xsl:for-each>

    <xsl:for-each select="provider/store/items/item[@available = &apos;true&apos;]"> 
          Content goes here 
    </xsl:for-each>

    註解:

    您需要將字串值 (例如 true) 圍上引號。Dreamweaver 會替您將這些引號編碼 (&apos;) 讓它們能輸入為有效的 XHTML。

    您可以建立更多複雜的篩選器,以便指定父節點為您篩選準則的一部分。在下面的範例中,您要將結果集限制在其 store@id 屬性等於 1 且 itemprice 節點大於 5 的那些 item 節點。

    將結果集限制在其 store 的 @id 屬性等於 1 且 item 的 price 節點大於 5 的那些 item 節點
    將結果集限制在其 store 的 @id 屬性等於 1 且 item 的 price 節點大於 5 的那些 item 節點

    當您按一下「確定」時,下面的程式碼便會插入到您的 XSLT 頁面:<xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> Content goes here </xsl:for-each>

    如需重複區域的詳細資訊和範例,請參閱「參考」面板中的 <xsl:for-each> 區段。

    <xsl:for-each select="provider/store[@id = 1]/items/item[price &gt; 5]"> 
        Content goes here 
    </xsl:for-each>

此産品由 Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License 授權  Creative Commons 條款未涵蓋 Twitter™ 與 Facebook 文章。

法律說明   |   線上隱私權政策