測試 XML 與 HTML 的 XPath 表達式
XPath 測試器是一個在瀏覽器本地運行的實用工具,專為開發人員、測試人員、數據抓取與遷移從業員,以及經常處理 XML 數據的用戶而設。本工具支援輸入 XML 或 HTML 格式的文本,並透過指定的 XPath 表達式進行即時查詢。
在操作時,工具會解析輸入的內容,並尋找所有符合 XPath 條件的節點。對於每一個匹配的節點,工具會詳細列出其類型、名稱、路徑以及值的預覽,並提供按鈕讓用戶複製個別結果的具體數值。
輸入限制與規格
為了確保瀏覽器運作流暢,工具設有以下輸入限制:
- XML / HTML 輸入:支援最大 500,000 個字元的文本。
- XPath 表達式:支援最大 4,000 個字元的表達式。
- 輸入類型:用戶必須選擇「XML」或「HTML」其中一種模式。
如果輸入的內容超出限制,系統會顯示相應的提示。例如,當文件字元數過大時,會顯示「這段文件太大,暫時無法在這裡測試。請換一段更小的樣本。」;若表達式超出長度限制,則會提示「這個 XPath 表達式太長,暫時無法測試。」。
XML 模式與 HTML 模式的解析差異
選擇正確的輸入類型對於準確提取數據至關重要:
XML 模式
在 XML 模式下,工具會嚴格執行 XML 命名空間(Namespace)規則。
- 命名空間前綴:若 XML 文件中宣告了命名空間前綴,用戶可以在 XPath 中直接使用,例如
//x:item。 - 預設命名空間:對於 XML 中的預設命名空間,
//item亦會跟隨文件宣告進行匹配。
HTML 模式
HTML 模式的容錯度較高。它允許使用簡單的路徑(例如 //a)來直接匹配標準的 HTML 標籤,適合用於網頁結構分析與數據抓取前的路徑測試。
需要注意的是,此工具是在靜態文本上運行,並不代表線上網頁的即時結構、瀏覽器渲染後的 DOM 或相關的網絡請求。
錯誤處理與效能保護機制
為了防止瀏覽器因執行複雜查詢而當機,工具設有 2 秒的執行時間限制。以下是常見的狀態與錯誤提示:
| 狀況 | 介面顯示訊息 |
|---|---|
| 尚未輸入數據 | 輸入 XML 或 HTML,再輸入 XPath 表達式即可測試。 |
| 正在運算 | 正在測試 XPath... |
| 找不到匹配項 | 沒有結果。 |
| 文件無法解析 | 無法解析這段文件。 |
| XPath 語法錯誤 | 這個 XPath 表達式不合法。 |
| 無法執行查詢 | 無法執行這個 XPath。 |
| 運算超過 2 秒 | 這個 XPath 執行太久了。請縮窄表達式,或換一段更小的樣本。 |
當成功匹配到數據時,工具會顯示「字元」數量與「結果」數量。如果匹配的結果超過 200 個,工具會顯示「只顯示前 {max} 個。」,並僅列出前 200 個結果以維持頁面效能。
本地處理與私隱說明
你的 XML、HTML 和 XPath 會在瀏覽器本地測試,不會上傳到 BroBroGo。所有解析與路徑匹配運算均在用戶的本機瀏覽器內完成,確保數據不會傳送至外部伺服器。
常見問題
可以在 HTML 上測試 XPath 嗎?
可以。XML 模式保留 XML 的命名空間規則;HTML 模式更寬容,像 //a 這樣的簡單路徑可以直接符合普通標籤。
XML 命名空間怎麼處理?
XML 內宣告過的命名空間前綴可以直接寫進 XPath,例如 //x:item。預設命名空間亦會跟隨文件宣告,所以 //item 能按文件內的預設命名空間符合。
為什麼查詢會逾時?
很大的文件或過寬的表達式可能需要很久才能算完。工具會在 2 秒後停止本次查詢,讓頁面保持可用;可以縮窄路徑或換一段更小的樣本。