XSLT 3.0 原生支持 JSON 处理,通过 XPath 3.1 函数直接读取、解析、遍历和生成 JSON,无需转为 XML;核心函数包括 json-doc()、?key 访问、?* 遍历,支持六种原生类型;json-to-xml() 仅在需模板匹配时作为可选桥梁;输出 JSON 需 method="text" 或 serialize()。
XSLT 3.0 原生支持 JSON 处理,不是靠外部插件或预处理,而是通过 XPath 3.1 定义的一套标准函数和数据模型实现的。核心在于:它把 JSON 当作一等公民纳入 XML 处理流程,允许直接读取、解析、遍历甚至生成 JSON 数据,而无需先手动转成 XML 再操作。
使用 json-doc() 函数可直接从 URL 或文件加载 JSON,并返回一个 XDM(XPath Data Model)结构——通常是 map 或 array 类型,而不是 XML 节点。这避免了“先转 XML 再处理”的冗余步骤。
json-doc('https://api.example/data.json') 返回一个 map,可用 ?key 查找字段?* 遍历,比如 $data?example?items?* 取 items 数组所有项当需要沿用传统 XSLT 模板匹配(如 )时,才用 json-to-xml() 把 JSON 转成特定格式的 XML 树。它生成的 XML 有固定命名空间 http://www.w3.org/2005/xpath-functions,根是 或 ,子元素带 key 属性。
这
类写法,但灵活性不如直接操作 map/array" 变成 zuojiankuohaophpcn,符合 XML 安全要求
XSLT 本身不支持 method="json",所以输出 JSON 必须设 output method="text",再手动拼接字符串或调用 xml-to-json()(仅限 Saxon PE/EE 支持)。
(Saxon 10+)"{"name":"" || $name || ""}"
基本上就这些。XSLT 3.0 的 JSON 支持本质是让 JSON 和 XML 在同一个处理管道里流动,不是替代关系,而是互补协同。