XML 解析器
格式化、校验 XML 文档,支持 XPath 查询。所有处理在浏览器中完成。
XML格式不正确
结果
节点树
如何使用 XML 解析器
输入 XML
在输入框中粘贴或输入 XML 文档。
格式化或校验
点击格式化美化 XML,或点击校验检查语法错误。
XPath 查询
输入 XPath 表达式查询特定节点。
什么是XML?
XML(可扩展标记语言)是一种标记语言,定义了一组规则,用于以人类可读和机器可读的格式编码文档。它广泛用于配置文件、数据交换(SOAP、RSS、Atom)和文档存储。
XML主要特性
自描述性
XML使用自定义标签描述数据结构,便于一目了然地理解内容和层次。
平台无关
作为纯文本,XML可以在所有平台、编程语言和系统之间无兼容性问题地使用。
可扩展
您可以使用DTD或XML Schema定义自己的标签和文档结构,以适应任何数据模型。
常见问题
XML 用于数据存储和传输,标签可自定义;HTML 用于网页显示,使用预定义标签。XML 更严格,要求正确嵌套和闭合。
支持 XPath 1.0 的基本功能,包括路径表达式、谓词筛选和常用函数。
本工具使用浏览器 DOM 解析,适合中等大小的文件。非常大的文件(>10MB)可能导致浏览器变慢。
命名空间通过 xmlns 属性将元素名称映射到一个 URI,例如一个 atom:feed 元素声明 xmlns:atom="http://www.w3.org/2005/Atom"。前缀是任意的,只有 URI 才真正标识命名空间,因此两个文档可以为同一词汇表使用不同的前缀。正因如此,当两边前缀不一致时,XPath 匹配常常需要借助 local-name() 技巧。
XPath 1.0 表达式通过遍历树来选取节点:/rss/channel/item 按路径选择,//item 查找文档中任意位置的 item,item[@type='news'] 按属性过滤,而 item[1] 或 item[last()] 这类谓词则选取特定节点。它是 XSLT、众多测试框架以及本工具求值器背后的查询语言。
XXE(XML External Entity,XML 外部实体)注入利用指向文件路径或 URL 的 DTD 实体,诱使服务器端解析器去获取它——历史上曾借此泄露 /etc/passwd 或探测内部服务。浏览器 XML 解析器不会解析外部实体,而且本工具完全在您的浏览器中运行、不经过任何服务器,因此粘贴的 XML 无法触发文件读取或 SSRF。
DOM 会将整个文档加载成一棵可随机访问的树——直观但对超大文件非常消耗内存。SAX 则以单次遍历流式发出事件(开始标签、文本、结束标签),内存占用恒定——速度快但只能向前。浏览器 JavaScript 提供 DOMParser(DOM 风格);在 JavaScript 中流式处理 XML 则需要借助库或 Web Streams。
在普通文本中应将它们转义为 < 和 &——在字符数据中,原始的 < 和 & 是非法的。对于包含大量标记的文本块,可将其包裹在 CDATA 节中,在遇到结尾序列 ]]> 之前无需任何转义。内容中严格必须转义的只有 < 和 &;> 仅在构成该结束序列时才需要转义。