讀入 XML

如需詳細資訊和指示,請按下列連結。

XML 讀入與版面編排方法

讀入 XML 資料之後,讀入的內容會出現為「結構」窗格中的元素 (XML 的基本建置區塊)。InDesign 不會在讀入 XML 時建立新的框架或頁面。

附加或合併?

您可以使用兩種模式讀入 XML:附加或合併。您選擇的方法需視下列各項而定:手動或自動化的工作流程、如何處理文件中現有的內容,以及是否要處理已讀入資料的進階選項。

附加模式

「附加」讀入的內容時,文件的現有結構和內容都會保留原狀;而將新的 XML 內容以元素的形式置入「結構」窗格底部。

合併模式

「合併」讀入的內容時,InDesign 會比較傳入的 XML 與已經在文件中的元素結構和名稱。如果元素相符,讀入的資料就會取代現有的文件內容,並正確地合併至版面中標記的框架 (或預留位置) 中(InDesign 找不到相符名稱和階層架構等級的元素會置入「結構」窗格,以供您手動置入)。合併模式不但可以自動編排版面,也提供了更進階的讀入選項,包括為重複資料篩選傳入文字及仿製元素的功能。

內容編排

讀入 XML 內容之後,下一步就是置入文件中。您可以手動、自動,或使用指令碼置入內容。您所選擇的方法需視讀入的內容、文件的版面編排,以及工作流程處理而定。

手動置入內容

使用手動方法時,要從「結構」窗格將元素拖移到文件的頁面上或框架中。這種方法不需要太多設定或規劃。如果讀入各種不同類型的內容,或者如果需要多個來源的內容,請使用這種方法。

手動置入已讀入的 XML 內容

自動置入內容

您可以透過規劃,將在版面中置入 XML 資料的處理自動化。如果要自動置入 XML 內容,首先要建立標記的預留位置框架以保存傳入的 XML,為文件做好準備。只要傳入內容的結構和標記名稱與預留位置框架的結構和標記名稱相符,InDesign 就能自動將讀入的 XML 置入文件中。InDesign 也可以仿製元素,以處理諸如地址清單和型錄資料等重複性資料。使用自動版面編排方法做為結構化工作流程處理的一部分,以加速處理時間及效率。

選取的預留位置 (上) 是以「內文」元素標記。讀入 XML 資料時 (下),「內文」元素預留位置框架會自動以「內文」元素內容填入。

註解:

InDesign 會識別可以在 XML 中指定段落或字元樣式的特殊命名空間屬性。如需詳細資訊,請參閱 XML 技術參考指南

關於合併

您可以使用合併模式或附加模式,將 XML 資料置入文件中。合併模式可以讓您將內容置入自動化。也可以篩選 XML 檔案中的資料,只置入內容的特定部分。

請在下列情況下合併傳入的 XML 內容:

  • 文件中含有您準備用傳入的 XML 檔案填入之預留位置框架。

  • 文件中包含您準備用讀入的 XML 內容取代之 XML 內容。

  • 文件不含任何 XML 結構,而您希望 InDesign 以傳入的 XML 檔案根來取代預設根。

合併模式會比較傳入的 XML 資料與已經在文件中的元素。它會移過整個檔案,逐一檢視每個元素,以下列方式比較傳入的元素與現有元素:

1. InDesign 從根元素開始比較

  • 如果讀入之 XML 檔案的根元素與 InDesign 文件不相符,且「結構」窗格中未包含現有結構,則 InDesign 會以傳入之 XML 檔案的根取代 InDesign 文件根,然後讀入檔案。

  • 如果根元素不相符,但「結構」窗格中已包含元素,則 InDesign 會將檔案附加至現有結構的結尾。

  • 如果根元素確實相符,則合併 (及比對) 處理會向前移。

2. InDesign 會移到根下方的元素

InDesign 從傳入 XML 檔案中根下方的元素開始,在「結構」窗格中搜尋相符的元素。如果要產生相符情形,傳入的 XML 元素必須與「結構」窗格中現有元素的名稱相同,而且兩個元素必須位於階層架構中的相同層級。

  • 如果 InDesign 在「結構」窗格中找到一個相符的元素,就會用傳入 XML 檔案中的元素加以取代。

  • 如果 InDesign 找不到相符的元素,就會在「結構」窗格的搜尋起始點插入傳入的元素。例如,如果搜尋從根下方開始而找不到相符項目,就將傳入的元素置於根下方。

3. InDesign 繼續比較元素

InDesign 繼續將傳入的 XML 與現有結構的每個元素逐一比對。在「結構」窗格中開始搜尋的起點會隨著搜尋進程而變更,每次搜尋都會從插入或取代的上一個元素下方開始。InDesign 永遠都會從目前位置往下移;而絕不會將元素置於所插入或取代的前一個元素上方。

讀入及附加 XML 資料

讀入 XML 內容時,新元素會出現在「結構」窗格中。您可以從該處拖移元素,置入文件中。

  1. 開啟 InDesign 文件或建立新文件,以接收 XML 內容。
  2. 開啟「結構」窗格(選擇「檢視  > 結構  > 顯示結構」)。
  3. 選擇「檔案 > 讀入 XML」(或在「結構」面板選單上選擇「讀入 XML」),然後選取要讀入的 XML 檔案。
  4. 選取「顯示 XML 讀入選項」。
  5. 選取「附加內容」,然後按一下「開啟舊檔」。
  6. 如果要將 XML 內容連結到原始 XML 檔案,請選取「建立連結」。

    InDesign 會將 XML 檔案列入「連結」面板中,而且如果 XML 檔案有所改變,就會在面板中顯示黃色警告三角形。

  7. 按一下「確定」。

手動編排 XML

您可以從「結構」窗格將元素拖移至頁面或現有框架中,手動將 XML 內容置入文件版面中。置入元素時,它的子元素 (及其下面存在的所有子元素) 也都會同時置入。

在「結構」窗格中,如果已在文件中置入元素,元素的圖示上就會出現該結構專屬的藍色菱形;尚未置入的元素會顯示未置入的圖示。

註解:

如果使用「合併內容」選項讀入 XML,可能已經編排了一些元素。合併讀入的內容時,如果結構與標記方式完全相同,InDesign 會自動將元素排入現有框架中。

  1. 開啟「結構」窗格 (「檢視 > 結構 > 顯示結構」),然後選取要編排的元素。
  2. 請為要置入文件中的元素執行下列其中任一項:
    • 把元素拖移到頁面。InDesign 會建立元素的框架。

    • 把元素拖移到現有框架上。如果框架中含有內容,就會由 XML 資料中的內容加以取代。

  3. 如果要設定所編排項目的格式,執行下列任一項作業:
    • 將 XML 標記對應至段落、字元、表格和儲存格樣式。

    • 套用樣式至元素。

    • 在「控制」面板中選擇文字選項,手動設定所選取內容的格式。

將 XML 標記對應至樣式

XML 標記只是資料描述;本身並未包含格式設定指示。因此,讀入並編排 XML 內容之後,必須設定該內容的格式。其中一種設定方式就是將 XML 標記對應至段落、字元、表格或儲存格樣式。例如,Byline 標記可以對應至「作者」字元樣式,讓所有讀入且置入之標記為 Byline 的 XML 內容都會自動指定為「作者」字元樣式。將標記對應至樣式,使得為讀入的 XML 內容設定格式比較簡單,花費的時間也較少。

您不必將每一個標記都對應至段落或字元樣式。有些元素可能不會出現在版面中,而有些標記可能逐一進行格式設定會比較簡單。而且子元素會取得指定給其父元素的段落或字元樣式,如果不小心地將父元素與子元素分別進行對應,會導致混淆。

註解:

「將標記對應至樣式」指令會在整個文件中重新套用樣式,有時反而會得到不想要的結果。將標記對應至樣式時,視 XML 標記而定,先前已指定為一個樣式的文字可能會重新指定為另一個樣式。如果已經設定了某些文字的格式,可能會寧可手動套用樣式,以防止段落與字元樣式選項被取代。

  1. 從「標記」面板選單或「結構」窗格選單中,選擇「將標記對應至樣式」。
    「將標記對應至樣式」對話框中出現各個標記的樣式選單

  2. 執行下列任一項作業:
    • 如果要從另一個文件讀入樣式、標記及對應定義,請按一下「載入」,選擇文件,然後按一下「開啟舊檔」。

    • 如果要個別將標記對應至樣式,請按一下標記旁邊的「樣式」欄,並從出現的選單中選擇段落或字元樣式(段落符號可識別選單中的段落樣式;「A」代表字元樣式)。在每個您想對應的標記上重複進行。

    • 如果要自動將標記對應至同名稱的樣式,請按一下「依名稱對應」。「樣式」欄中就會選取與標記同名稱的樣式。如果要真正相符,標記與樣式不但名稱要相同,大小寫也必須相同,例如, H1h1 不會視為相符(如果在兩個不同的樣式群組有相同的樣式名稱,則「依名稱對應」無法運作,您會接到警告,要您重新命名其中一個樣式)。

  3. 按一下「確定」。

關於自動版面

您可以使用 InDesign,將讀入的 XML 內容自動置入版面中。如果要執行這項作業,首先要建立預留位置框架或表格,並以相同標記名稱標記為要置入的 XML 元素。然後,在「合併」模式中將 XML 內容讀入預留位置。當標記的名稱和結構階層相符時,InDesign 會合併 XML 內容,取代文件中任何現有的內容。

如果要在各組不同的內容中使用相同的版面,這項技巧就很有用。例如,每週發行的通訊刊物可能週週版面都相同,但每次發行的刊物都有不同的內容。

為了讓讀入的 XML 直接合併至版面,文件必須符合下列需求:

  • 文件中的框架 (或表格) 所用的標記名稱必須與要讀入的 XML 檔案中之元素完全相同。

  • 文件的結構 (如「結構」窗格中所示) 必須與讀入的 XML 檔案之結構相同。也就是說,名稱完全相同的元素在兩個檔案的結構階層中必須位於相同位置。如果要達成這種平行結構,可能必須在「結構」窗格中重新排列並排序元素 (及其子元素),或是在讀入 XML 檔案時,使用「套用 XSLT」選項。

註解:

InDesign 只會將合併的 XML 內容排入現有框架中。無法納入框架 (或一系列串連框架) 中的任何元素內容就會變成溢排文字。

處理重複資料

如果相同的元素組態在一列中出現多次,但是每個實例中都包含獨特的資料,XML 就是重複的。例如,資料庫記錄就是重複的。資料庫資料表中的地址包含許多不同的個人重複資訊,也就是,姓名、街道地址、城市、縣、郵遞區號等。

讀入 XML 內容時,您可以選取「XML 讀入選項」對話框中的「仿製重複的文字元素」。選取這個選項會使 InDesign「仿製」結構中的重複元素。仿製可以讓您將重複的 XML 資料合併到文件中,而不必在「結構」窗格中為每一筆記錄建立預留位置元素 (或框架中的預留位置文字)。例如,如果要讀入有 25 個項目的 XML 地址清單,請在「結構」窗格中為一個項目建立相符的元素結構。讀入完整的清單時,InDesign 就會仿製結構,為全部 25 個項目建立元素。

重複的 XML 內容在合併到文件中時,是排流為單一內文。如果預留位置框架已串連在一起,則內容會從一個框架排流到下一個。如果預留位置框架中沒有足夠空間可容納 XML 內容,則可以建立並串連多個框架以自動排流其餘的內容,而不必手動從「結構」窗格將元素拖移到個別框架之中。

版面中串連的預留位置 (左) 及讀入後的版面 (右)

建立自動版面的預留位置

如果要 InDesign 將讀入的 XML 自動合併到版面中,請在文件中建立預留位置框架或表格。

註解:

InDesign 只會將合併的 XML 內容排入現有框架中。所提供而無法納入框架中的任何內容都會變成溢排文字。

您也可以建立預留位置文字,以確保 XML 資料正確地置入頁面並設定格式。也可以在要出現於框架中的 XML 元素之間使用預留位置文字來包含 Tab 鍵、間距或標籤 (稱為「靜態文字」)。

已標記預留位置文字 (左) 及讀入後的版面 (右)

A. 加在元素間的 Return 鍵及靜態文字 B. 預留位置文字 

例如,如果讀入並置入產品資訊,則可以用 Tab 鍵分隔產品的名稱、說明和價目,並可包含標籤,如「產品:」或「價格:」,標示於元素的預留位置文字項目之前。將 XML 資料合併到框架中時,靜態標籤、間距和 Tab 鍵都會保留在內容元素之間。

註解:

如果將重複的 XML 資料合併到文件中,並指示 InDesign 仿製重複的元素,也會為資料的每個實例仿製靜態文字和間距。

建立預留位置框架

  1. 使用「文字」工具,為 XML 內容建立文字框。
    註解:

    如果要讀入 XML 內容,以從一個框架排流到另一個,請建立多個框架,然後串連在一起。

  2. 開啟「結構」窗格 (「檢視 > 結構 > 顯示結構」) 和「標記」面板 (「視窗 > 公用程式 > 標記」)。
  3. 如果「標記」面板不包含與準備要讀入之 XML 元素名稱相同的標記,則請建立標記,或從 XML 檔案中載入標記。
  4. 從「標記」面板,以適當標記為預留位置框架進行標記(標記框架時,串連至此框架的任何框架都會指定相同的標記)。
  5. 必要時,可在「結構」窗格中排列或加入元素,以便與將讀入的 XML 之元素和結構相符。

建立預留位置表格

您可以將 XML 元素讀入預留位置表格中,也可以讀入預留位置框架中。在表格中,每個儲存格都以一個元素代表。InDesign 會逐一將 XML 內容置入表格的儲存格裡,從表格的左上角開始,將元素對應至已標記的儲存格。建立預留位置表格時,必須標記表格,同時也標記表格中的每個儲存格(合併的儲存格視為單一的儲存格)。

由於 InDesign 在讀入時不會區分欄和列,預留位置中的欄數必須與所讀入內容的欄數相符。而且,表格中所有儲存格元素都必須包含在單一表格元素之中。換句話說,儲存格都是擁有相同父代的同層元素。

預留位置表格 (上) 及 XML 內容排流到預留位置表格中 (下)

  1. 開啟「標記」面板 (「視窗 > 公用程式 > 標記」) 和「結構」窗格 (「檢視 > 結構 > 顯示結構」)。
  2. 如果「標記」面板不包含與準備要讀入的 XML 表格元素名稱相同之標記,請從現有文件載入標記或建立標記。
    註解:

    您最少必須標記表格中儲存格的父元素、表格的儲存格、以及表格所在位置的元素。

  3. 為 XML 內容建立包含適當欄數的表格。您不需要建立精確的列數,如果有需要的話 InDesign 會在表格中增加列。
  4. 將插入點置於表格中,選擇「表格 > 選取 > 表格」,然後在「標記」面板中選取適當的標記。
  5. 將表格中的每一個儲存格都標記上所要的標記。依照 XML 內容的結構而定,您可以單獨選取並標記儲存格,或選取整列或欄 (例如,要標記第一列或標題列),並使用相同標記為所有選取的儲存格進行標記。
  6. 視需要在「結構」窗格中重新排列並加入元素,以便讓文件與所要讀入之 XML 檔案具有相同的元素和結構。

為重複資料建立預留位置結構

合併重複的 XML 時,也適用與合併 XML 時的相同規則:「結構」窗格中的元素結構必須與讀入的 XML 資料結構相同,任何預留位置框架都必須標記為 XML 檔案中之父元素的相同標記名稱。

顯示預留位置文字結構的「結構」窗格

A. 將包含所有重複元素的元素 B. 已匯入將仿製為重複 XML 內容的元素 C. 包含於重複元素中之資料的子元素 

  1. 首先,您需要父元素或根元素,可描述將讀入的資訊集合或記錄。

    例如,Chapter (章節) 元素將包含一系列步驟卡。

  2. 在父元素之下,建立一個描述將重複資訊 (或記錄) 的元素。

    例如,在 Chapter (章節) 元素之下,可以建立 Recipe (步驟卡) 元素。這是將為所讀入 XML 中每一筆記錄仿製的元素。

  3. 在此元素之下,建立子元素,以描述組合成記錄的資訊單位 (或欄位)。

    例如,在 Recipe (步驟卡) 元素之下,可以建立 Recipename (食譜名稱)Ingredients (材料)Instructions (做法)Notes (註解)Serving (份量) 元素。

註解:

如果要在重複的 XML 資料中「欄位」之間包含標籤、Return 鍵,或 Tab 鍵,請在要併入讀入內容的框架中建立預留位置元素。並視需要在預留位置之間加上間距或標籤。

建立預留位置文字

  1. 開啟現有的文件,或為 XML 建立新文件。
  2. 開啟「標記」面板 (「視窗 > 公用程式 > 標記」) 和「結構」窗格 (「檢視 > 結構 > 顯示結構」)。
  3. 確認「標記」面板中所包含的標記名稱與將和 XML 一起讀入的元素名稱完全相同,並在需要時建立新標記或載入必要的標記。
    註解:

    如果要取得所有必要的標記,並確認文件結構與 XML 檔案相符,讀入 XML 內容樣本是最簡單的方式。

  4. 視需要為 XML 內容建立預留位置框架 (然後串連在一起)。
  5. 使用「文字」工具,按一下第一個框架以建立插入點,然後輸入要併入該框架之各個元素的預留位置文字。在元素之間包含所要的任何間距,以及靜態文字。
    註解:

    如果要讀入重複的資料,則只需要為將重複的元素建立一個樣本文字實例。

  6. 將文字格式設定為希望在最後文件中出現的格式。
  7. 以父元素的標記為文字框進行標記,該父元素將包含要讀入該框架中的元素 (或重複的資料)。
  8. 將插入點置入預留位置文字中,然後選擇「編輯 > 在內文編輯器中編輯」。
  9. 選擇「檢視 > 結構 > 顯示標記符號」。
  10. 選擇「編輯 > 全部選取」。
  11. 在「標記」面板中,選取「新增標記」,然後按一下要指定給框架的標記。

    InDesign 會以標記包覆預留位置文字,並新增元素至「結構」窗格中。

  12. 選取代表第一個子元素的文字,然後在「標記」面板中按一下它的標記。重複步驟直到標記完所有子預留位置文字。
    註解:

    標記預留位置文字時,請勿選取要在元素之間保留的任何間距或靜態文字。請只標記要以 XML 內容取代的文字。

  13. 在「結構」窗格中,檢視由標記作業建立的階層架構,以確保與將讀入的 XML 內容之結構相符。

讀入及合併 XML

建立並標記預留位置框架、表格和文字,並確認文件和傳入的 XML 檔案具有相同的標記名稱和結構以後,就可以將 XML 內容讀入版面中。

您必須使用「合併內容」選項,將 XML 讀入預留位置中 (或取代文件中的現有內容)。合併內容時,InDesign 會以讀入的 XML 元素取代文件中標記和結構完全相同的元素。您可以使用其他讀入選項,以排除與文件結構不相符的讀入 (也就是篩選) 內容、刪除不相符的文件項目或以讀入的 XML 取代,以及仿製重複的 XML 元素。

如果讀入的 XML 檔案包含文件中找不到的元素,InDesign 會將這些項目置入「結構」窗格中,而不在文件中進行編排。

如果要順利將 XML 合併到預留位置中,請牢記下列規則:

  • 將預留位置標記為與將取代此位置 (或排流在其中) 之 XML 元素完全相同的名稱。

  • 在預留位置文字中,請確認任何間距、Return 鍵、Tab 鍵或靜態文字都在預留位置元素標記之外,但都在內文的父元素之內。

  • 讀入 XML 時,請選取「不要讀入只含空格的元素內容」(如果讀入的 XML 元素只包含空格,這個選項可以保留間距和靜態文字)。

將 XML 合併到現有內容或預留位置中

  1. 開啟包含 XML 內容預留位置的 InDesign 文件。
  2. 開啟「結構」窗格 (「檢視 > 結構 > 顯示結構」)。
  3. 選擇「檔案 > 讀入 XML」(或在「結構」面板選單上選擇「讀入 XML」),然後選取要讀入的 XML 檔案。
  4. 選取「顯示 XML 讀入選項」。
  5. 選取「合併內容」,然後按一下「開啟舊檔」。
  6. 如果要將 XML 內容連結到原始 XML 檔案,請選取「建立連結」。

    InDesign 會將 XML 檔案列入「連結」面板中,而且如果 XML 來源檔案有所改變,就會在面板中顯示黃色警告三角形。

  7. 視需要選取其他讀入選項:

    仿製重複的文字元素

    如果是讀入重複的 XML,請仿製單一預留位置元素,為檔案中每個記錄建立容器。

    只讀入符合現有結構的元素

    篩選傳入的 XML,而不會讀入「結構」窗格中不存在的元素。

    不要讀入只含空格的元素內容

    保留預留位置框架中元素之間插入的任何間距或靜態文字。

    刪除不符合讀入 XML 的元素、框架及內容

    讀入 XML 之後,刪除文件中任何不符合傳入資料 (或由傳入資料取代) 的元素或預留位置。

  8. 按一下「確定」。

InDesign 會從 XML 檔案中第一個符合的元素開始,將內容合併到文件中。

XML 讀入選項

使用「合併內容」選項讀入並置入 XML 資料時,「XML 讀入選項」對話框會提供下列選項:

建立連結

連結至 XML 檔案,因此,如果更新 XML 檔案,您可以在 InDesign 文件中更新它的 XML 資料。

套用 XSLT

套用樣式表,以定義讀入 XML 的變形。選取「瀏覽」(Windows) 或「選擇」(Mac OS),從檔案系統選取 XSLT 檔案 (.xsl 或 .xslt)。如果 XML 檔案中有樣式表存在,「使用來自 XML 的樣式表」(預設選項) 會讓 InDesign 使用 XSLT 處理指示,以轉換 XML 資料。

仿製重複的文字元素

複製套用在重複內容之標記預留位置文字的格式設定。建立一個格式設定實例 (例如,地址),然後重新使用其版面,以自動建立其他實例(請參閱處理重複資料)。

只讀入符合現有結構的元素

篩選讀入的 XML 內容,只有在符合文件中元素時才能讀入 XML 檔案中的元素。

如果標記符合則將文字元素讀入表格中

如果標記符合套用在預留位置表格及其儲存格的標記,則將元素讀入表格中。例如,使用此選項在產生價目表或存貨清單時,將資料庫紀錄置入表格中。

不要讀入只含空格的元素內容

如果符合的 XML 內容只含空格 (例如 Return 鍵或 Tab 鍵字元),則保留任何現有的內容。如果已在預留位置框架中的元素之間包含文字,而您要保留此文字,請使用此選項。例如,在為資料庫所產生的步驟卡排版時,您可以新增標籤,例如「材料」及「做法」。如果包覆各個步驟卡的父元素只包含空格,InDeign 就會保留標籤。

刪除不符合讀入 XML 的元素、框架及內容

如果元素不符合讀入 XML 檔案中的任何元素,則從「結構」窗格及文件的版面移除元素。使用這個選項,從文件篩選資料。例如,在讀入名稱及地址時,您可以讓元素的預留位置文字包含公司名稱。如果其中一個名稱不包含公司元素,InDesign 就會刪除包含預留位置文字的元素。

將 CALS 表格讀入為 InDesign 表格

將 XML 檔案中任何 CALS 表格讀入為 InDesign 表格。

更快、更輕鬆地獲得協助

新的使用者?