⌘K 切换工具
FORMAT & CONVERT

XML → YAML 转换工具

将XML文档转换为YAML格式。

local
xml-yaml
§01 关于此工具

概述

把遗留的 XML 配置迁移到基于 YAML 的工具链(CI 流水线、Kubernetes 清单、应用配置), 通常意味着枯燥的手工编辑。这个转换器用浏览器原生的 DOMParser 解析 XML, 再通过 js-yaml 输出两空格缩进、不做行宽折行的 YAML。属性以 @ 前缀的键留下来, 重复的标签变成序列。

两种格式的表达能力并不对等:XML 有元素和属性两套机制,而 YAML 只有键值和序列, 所以属性必须借一个前缀才能落进 YAML 的键空间里。

使用方法

  1. 把文档粘贴到 XML 输入框,转换随着你的输入进行。
  2. YAML 输入框读取结果。XML 有毛病时,两个框之间会显示 Invalid XML 错误。

示例

  • <config><host>localhost</host><port>8080</port></config>
config:
  host: localhost
  port: '8080'
  • <server id='a'><mode>fast</mode></server>id 属性会以 '@id': a 的形式与 mode: fast 并列出现。

说明

所有值都是字符串,因为 XML 没有类型系统:8080 会变成带引号的标量 '8080' 而不是数字——转换之后请复查数值和布尔字段。既没有属性也没有子元素的元素会退化成 纯字符串,空元素变成空字符串。如果目标工具链要求真正的数值类型, 去掉这些引号就是转换之后必须手工确认的一步。

FAQ
我的 XML 会被发送到服务器吗?
不会。文档用浏览器内置的 DOMParser 解析,再由 js-yaml 库序列化成 YAML,全程都在本地完成,不上传任何内容。
属性和重复出现的元素是怎么处理的?
属性变成带 @ 前缀的键,带属性元素内部的文本放到 #text 下,重复的兄弟标签会被收集成一个 YAML 序列(列表)。
这个工具能把 YAML 转回 XML 吗?
不能,转换是从 XML 到 YAML 的单向过程。这个映射也是有损的——注释、CDATA 的区别和处理指令都不会被带过去。