打开XML文件
用可折叠的树形结构取代尖括号之墙。收起不需要的部分,搜索需要的内容,清楚查看属性和命名空间。
- 绝不存储
- 无需排队,无需等待
- 无需注册,无水印
粘贴XML、RSS订阅源、SVG或配置文件,就会以树形结构显示在这里。
使用方法
粘贴或拖入文件
XML、RSS、Atom、SVG、网站地图、配置文件——任何XML都可以。
浏览树形结构
折叠分支,展开您想看的那一个,并看清文档有多少层。
在其中搜索
无需通读全文,即可找到某个元素、属性或值。
一棵真正能浏览的树
在文本编辑器里,XML是一堵由尖括号砌成的墙;同一份文档变成树形结构,就能读懂了。每个元素都是可以展开或折叠的一行,属性显示在所属元素旁边而不是挤在同一行里,嵌套层级就是缩进——因此,要在一万行的导出文件里找到您关心的那条记录,只需折叠不需要的分支。
元素超过几百个的文档打开时根节点以下默认折叠,这是有意为之。先绘制大型导出文件的每一行,意味着页面要过几秒才能用,而且滚动卡顿;从折叠状态开始,文档的整体结构立刻一目了然,而这通常正是您想看的。边看边展开,既更快,也更有助于理解一个陌生的文件。
不获取任何外部内容,也不解析任何外部引用。XML文档可以引用外部DTD或实体,而会跟随这些引用的解析器,会去获取它们指向的任何东西——磁盘上的文件、内网中的地址。这就是XML外部实体(XXE)漏洞,唯一彻底的防御就是拒绝。所以依赖外部DTD的文档会在没有DTD的情况下显示,这是一项安全特性而不是遗漏,而它最重要的场合恰恰是人们使用查看器的典型情形:检查一个不是自己写的文件。
命名空间按原样显示,而不是被规范化掉,因为在陌生文档中,前缀往往正是您想弄明白的东西。CDATA段显示为其中包含的原始文本,实体引用只显示不展开,所以您看到的内容与文件中的一致。
如果您需要的是别的
如果您知道要找什么,与其浏览,不如直接查询。xmlstarlet sel -t -v "//order[@id='42']/total" data.xml用一个XPath表达式回答具体问题,xmllint --xpath也能做到。一旦能描述出您要的内容,这比展开一棵树快得多。
对于大到内存放不下的文件——XML解析成树后通常会占用文件大小数倍的内存——任何查看器都帮不上忙。Python的iterparse这类流式解析器能以恒定的内存遍历几GB的文档,而less配合xmllint --format就足以在不加载的情况下看清一个庞大文件的结构。
常见问题
我的文件会被存储吗?
不会。不存储任何内容,也不保留任何内容,页面加载后即使关掉Wi-Fi也能使用。
如果XML有错误会怎样?
您会看到出错的行、列和字符,并显示出错的那一行,在出错位置下方用插入符号标出——与我们的XML校验工具报告方式相同。只会说“无法解析”的查看器,并不能让您比之前知道得更多。
会显示属性和命名空间吗?
会。属性显示在所属元素上而不是被隐藏,命名空间声明也会被特别标出——未声明的前缀是XML在别处解析失败最常见的原因之一,而在纯文本视图中根本看不出来。
能打开RSS或Atom订阅源吗?
能,它们都是XML。网站地图、SVG图片、Android布局文件、Maven POM以及大多数配置文件也都是。只要是XML,都能在这里打开。
这和XML格式化工具一样吗?
两者解决的问题不同。格式化工具给您带缩进的XML文本,方便复制回文件。本工具给您一棵可以阅读和浏览的树,分支可以折叠——当文档很大、您是在找东西而不是编辑时更合适。
能打开多大的文件?
取决于可用内存,而不是固定的大小上限。大文档打开时默认折叠,所以您不必等几千个节点绘制完才能操作。
小贴士: 元素超过几百个的文档打开时,根节点以下默认折叠,这样页面立即可用,而不必先绘制几千行。整个文档都保存在内存中,因此非常大的XML导出文件受限于浏览器标签页,而不是工具本身。
把这个工具放到您的网站上
博客、课程页面或帮助文章均可免费使用。粘贴一段代码,访客就能直接在您的页面上使用。