XML 转 YAML 转换器

你的 XML 会留在此浏览器中。引导流程会将其暂时保存在当前标签页的会话存储中,选择重新开始即可清除。

请粘贴一份格式正确的 XML 文档。浏览器限制为 1 MB,不支持 DTD 声明和自定义实体。

粘贴一份格式正确的 XML 文档,即可在浏览器中将其转换为 YAML。转换器采用固定的表示方式,清晰保留元素名、属性、文本和重复的同级元素。它适合用来检查 XML,或为其他工具准备便于阅读的初始内容,但不会验证模式,也不保证生成的 YAML 能还原原始 XML。

将 XML 转换为 YAML

  1. 1

    粘贴 XML

    输入一份格式正确、大小不超过 1 MB 的 XML 文档。

  2. 2

    在本地转换

    浏览器解析 XML 并生成 YAML,不会将文档上传到 Hyperion。

  3. 3

    检查映射结果

    在使用 YAML 前,核对属性、重复的同级元素以及混合文本。

  4. 4

    按目标要求验证

    本工具只转换结构。你的应用程序仍需自行判断其 YAML 配置是否有效。

转换示例

XML:

<server port="8080" env="production">
  <hosts>
    <host>api.example.com</host>
    <host>api2.example.com</host>
  </hosts>
  <timeout>30</timeout>
</server>

YAML:

server:
  "@attributes":
    port: "8080"
    env: "production"
  hosts:
    host:
      - "api.example.com"
      - "api2.example.com"
  timeout: "30"

固定映射规则

XML 的根元素会保留为 YAML 的顶层键。属性放在 @attributes 下。只包含文本的元素会成为带引号的 YAML 字符串,因此 0012true2026-07-30 等值仍为文本,不会改变类型。名称相同且连续出现的同级元素会成为 YAML 列表。

元素同时含有属性和文本时,文本放在 #text 下。文本和子元素交错出现,或同名子元素在另一个子元素之后再次出现时,转换器会使用 #content 保留其顺序。列表中的每个 XML 元素都表示为只有一个键的条目。

XML 命名空间前缀仍是 YAML 键的一部分,命名空间声明则出现在 @attributes 中。这样只能保留 XML 中可见的名称,不会解析命名空间的语义,也不会验证支持命名空间的模式。

限制与省略内容

转换器每次接受一份 XML 文档,最大 1 MB,嵌套深度不超过 100 层,元素不超过 100,000 个,生成的 YAML 不超过 2 MB。它会拒绝 DTD 声明和自定义实体声明。XML 注释和处理指令会被省略。CDATA 会作为普通文本处理,标准 XML 字符引用由浏览器解析器解码。

生成的 YAML 是便于阅读的数据表示,并非可逆的 XML 往返格式。将其用于应用程序或迁移流程前,请先仔细检查。

隐私与引导流程存储

转换在浏览器中完成,XML 不会发送到 Hyperion。使用引导流程时,浏览器会将输入和输出暂时保存在当前标签页的会话存储中,以便在检查步骤显示。选择重新开始会清除这些数据。

常见问题

XML 字符数据本身没有数字或布尔类型。为标量加引号,可防止 YAML 将 0012、true 和日期等文本重新解释为其他类型。

它表示一个有序列表,用于 XML 混合文本与子元素,或同名元素在其他子元素之后再次出现的情况。该列表会保留原内容的可见顺序。

不会。浏览器解析 XML 数据结构后再进行转换,因此会省略注释和处理指令。

不会。转换在浏览器中进行。可选的引导流程会使用当前标签页的临时会话存储,直到你选择重新开始或关闭标签页。

相关工具