自定義指令碼
要存取節點值編輯器中提供的格式化器之外的其他操作,請點選目標元素旁邊的尖括號arc:info 部分,其中定義了指令碼可用的輸入參數。此外還有一個輸出元素 result.text,可設定為傳回自定義指令碼的結果。result.text 中傳回的值將用於填充目標元素。
例如,可以使用指令碼根據商品名稱確定商品的 SKU。完成此操作的一種簡單方法是結合使用 select/case 語句和 XPath 格式化器來檢查輸入 XML 的 ItemName 元素:

編輯器會在鍵入時驗證指令碼。如果看到“Invalid Script”訊息,則表示存在某種語法問題。
ArcScript 運算器
ArcScript 在程式碼檢視中完全可用,包括所有運算器。例如,源 XML 可能包含某個商品 ID,而該商品的 SKU 必須從資料庫中檢索;在這種情況下,可以使用 dbQuery 運算器按 ID 查詢 SKU。條件邏輯
ArcScript 還支援在對映範本中執行條件邏輯。arc:if 關鍵字是可用於幫助在範本中執行條件邏輯的眾多關鍵字之一。例如:Foreach 迴圈索引
當元素對映位於 Foreach 迴圈中時,當前迴圈的索引始終可在自定義指令碼中使用。_index 屬性保留用於包含當前元素的最內層 Foreach 迴圈的當前索引。
例如,假設要對映一個存在於兩個 Foreach 迴圈中的 LineItem 元素:一個迴圈用於文件中的每個訂單,另一個迴圈(位於第一個迴圈內)用於訂單中的每個商品。在 LineItem 元素對映中引用 [_index] 會傳回內部迴圈(“item”迴圈)到目前為止迴圈的次數。該值從 1 開始計數。
Map 項
在對映中的某個位置設定指令碼變數,然後在對映的其他部分再次引用這些變數會很有用。這可以透過在節點值編輯器中建立變數和/或使用下文描述的_map 項來實現。
_map 項與任何其他 ArcScript 項一樣,只是其作用範圍包含 XML Map 端口處理的整個文件。_map 項的任何屬性都會在整個對映過程中持續存在,並且僅在 XML Map 端口完成檔案處理時清除。
例如,對映專案可能需要計算採購訂單中多個行專案的總成本(對映中可能包含若干 LineItemCost 元素以及一個 TotalCost 元素)。可以使用 ArcScript 透過設定 _map 項的屬性來跟蹤執行總計,如下所示:
_map.sum_cost 的當前值中(如果 _map.sum_cost 尚不存在,則預設值為 0)。如果此程式碼包含在遍歷所有行專案的 Foreach 迴圈內的某個元素中,則 Foreach 迴圈退出時 _map.sum_cost 的值就是 TotalCost。
由於 _map 的屬性會被保留,因此稍後可以在 TotalCost 元素對映中引用同一個 _map.sum_cost 值。例如: