研发工具

两本图书的 XML,怎样按路径核对价格与属性

极捷工具编辑 · 更新于

用七个元素的图书示例检查同名节点、属性和直接文本,下载 JSON 清单交接,分清结构正确与数据正确。

打开XML 结构检查 →

操作步骤

  1. 打开“XML 结构检查”,点击“载入图书示例”,再点击“检查结构”。先确认根元素 catalog、7 个元素、4 个属性、最深3层;统计包括根元素,不把文本节点当元素。
  2. 在选择元素中选 /catalog[1]/book[2]/price[1],核对元素名称 price、属性 currency = CNY、直接文本为带引号的38.50。book[2] 是同名兄弟中的第二项,不是文档中的第二个节点。
  3. 切换到第一本书的 title,查看“入门 & 实践”,原文的 &amp; 已解码;再选择第二本书的 title,应显示“进阶 <练习>”,这是 CDATA 文本,不会作为网页标签运行。
  4. 选 book[2] 时直接文本为空,因为标题和价格位于子元素。要看价格必须切换到 price;根元素的直接文本则包含排版换行和空格,用 JSON 引号视图显示。
  5. 下载 JSON 核对清单,在文本编辑器打开 xml-structure.json。核对 entries 有7项,最后一项 path 为 /catalog[1]/book[2]/price[1]、text 为38.50、attributes 中有 currency/CNY。下载的是解析结果,不能覆盖原 XML。
  6. 保留原文后,把输入改成 <root><item></root> 再检查,应报结构无效且不提供旧下载。改动原文会清除旧结果,修正闭合标签后才重新检查。

跟着示例试一次

内置示例每本书各有 title 和 price,加上两个 book 与一个 catalog,共7个元素。两个 id 和两个 currency 共4属性;根到 price 共3层。第二本价格38.50仍是文本,工具不把它转为数字、不验证价格是否合理。

怎样确认结果正确

示例真实下载1446字节,已独立读取核对7项、4属性及最后价格38.50。检查通过只代表浏览器接受 XML 结构,不代表满足业务规则或 XSD。技术依据为 DOMParser 的 XML 模式:https://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString 。

常见问题与边界

最多200,000字符、2,000元素、64层;拒绝DTD、实体声明及除开头XML声明外的处理指令。注释或CDATA里的相同声明文字也会保守拒绝,parsererror为保留元素名。命名空间URI单独显示,路径按带前缀名称计数,只是清单标签而非XPath。属性实体已解码,原始引号与CDATA写法不保留。不做格式化、修复、XSD校验或外部链接读取。原文仅本页内存处理,不上传、不执行、不自动保存,刷新清除。