XML 解析器

即時格式化、驗證與查詢 XML 文件。採用瀏覽器原生 API,實現最高速度與隱私保護。

格式化與壓縮 XPath 查詢 驗證

如何使用 XML 解析器

1

貼上您的 XML

將您的 XML 內容複製並貼上到輸入欄位,或點擊「載入範例 XML」。

2

格式化與驗證

使用「格式化」來美化、「壓縮」來縮小,或「驗證」來檢查錯誤。

3

使用 XPath 查詢

輸入 XPath 表達式並點擊「執行 XPath」來擷取特定節點。

什麼是 XML?

XML(可延伸標記語言)是一種標記語言,定義了一組規則,用於以人類可讀且機器可讀的格式編碼文件。它廣泛應用於設定檔、資料交換(SOAP、RSS、Atom)與文件儲存。

XML 主要特性

自我描述

XML 使用自訂標籤來描述資料結構,讓您能一目了然地理解內容與層級。

跨平台

作為純文字格式,XML 可在所有平台、程式語言與系統中使用,沒有相容性問題。

可延伸

您可以使用 DTD 或 XML Schema 定義自己的標籤與文件結構,以適應任何資料模型。

常見問題

格式正確(Well-formed)與有效的 XML 有什麼區別?

格式正確的 XML 遵循 XML 的基本語法規則(正確的巢狀結構、關閉標籤、單一根元素)。有效的 XML 不僅格式正確,還符合定義了允許結構與資料類型的 Schema(DTD、XSD)。

本工具是否能針對 XSD Schema 進行驗證?

不能,本工具僅檢查格式正確性(語法正確性)。瀏覽器原生不支援針對 DTD 或 XSD 的 Schema 驗證。

支援哪個版本的 XPath?

瀏覽器原生的 document.evaluate() 支援 XPath 1.0。這涵蓋了大多數常見查詢,包括軸、述詞以及 contains()、text()、@attribute 等函式。

什麼是 XML 命名空間(namespace),又該如何解讀?

命名空間透過 xmlns 屬性將元素名稱對應到 URI,例如 atom:feed 元素宣告 xmlns:atom="http://www.w3.org/2005/Atom"。前綴是任意的,只有 URI 才能識別命名空間,因此兩份文件可以為同一套詞彙使用不同的前綴。這正是當前綴不同時,XPath 比對常需要借助 local-name() 技巧的原因。

XPath 如何選取節點?

XPath 1.0 表達式會走訪樹狀結構:/rss/channel/item 依路徑選取,//item 找出文件中任何位置的 item,item[@type='news'] 依屬性篩選,而 item[1] 或 item[last()] 這類述詞則選取特定節點。XPath 是 XSLT、許多測試框架以及本工具查詢評估器背後的查詢語言。

什麼是 XXE?它會影響本工具嗎?

XXE(XML 外部實體)注入攻擊會利用指向檔案路徑或 URL 的 DTD 實體,誘使伺服器端解析器去讀取它——歷史上曾造成 /etc/passwd 或內部服務外洩。瀏覽器的 XML 解析器不會解析外部實體,而且本工具完全在你的瀏覽器中執行、不需與伺服器往返通訊,因此貼上的 XML 無法觸發檔案讀取或 SSRF。

DOM 與 SAX 解析有什麼差別?

DOM 會將整份文件載入成一棵可隨機走訪的樹——直觀,但處理大型檔案時非常吃記憶體。SAX 則以單次掃描的方式串流發出事件(開始標籤、文字、結束標籤),記憶體用量固定——速度快,但只能向前讀取。瀏覽器 JavaScript 提供的是 DOMParser(DOM 風格);在 JavaScript 中串流處理 XML 則需要額外的程式庫或 Web Streams。

如何在 XML 內容中加入 < 或 &?

在一般文字中請將它們逸出為 &lt; 和 &amp;——字元資料中出現原始的 < 和 & 是不合法的。若是一大段含大量標記的文字,可將它包在 CDATA 區段中,在結尾遇到 ]]> 序列之前都無需逸出。內容中嚴格要求逸出的只有 < 和 &;> 僅在構成上述結尾序列時才需要逸出。

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}