浏览器本地处理

YAML / XML 互转

复用安全 YAML 和 XML 转换规则:YAML 自定义标签、合并键和过量别名被拒绝,XML DTD 与 ENTITY 被拒绝;属性和文本使用明确映射。

浏览器本地处理
0 / 1,000,000
转换结果

工具指南

什么是YAML / XML 互转?

YAML 与 XML 互转通过现有受限数据模型连接两种常见配置格式。YAML 侧拒绝自定义标签、合并键、重复键和过量别名,XML 侧拒绝 DTD 与 ENTITY;属性放在 @attributes,文本放在 #text,同名元素使用数组,使简单结构的映射清楚且可测试。常见使用场景包括:把 YAML 配置转换为旧系统需要的 XML。;把 XML 请求示例转换为较易编辑的 YAML。;检查属性、文本和重复元素的映射规则。页面同时列出输入边界、输出规则和限制,便于在复制结果或投入实际流程前核对格式、语义与安全注意事项。

适用场景

  • 把 YAML 配置转换为旧系统需要的 XML。
  • 把 XML 请求示例转换为较易编辑的 YAML。
  • 检查属性、文本和重复元素的映射规则。

使用方法

  1. 确认 YAML 根结构对应一个 XML 根键。
  2. 使用 @attributes 和 #text 表示属性与文本。
  3. 执行并阅读有损转换警告。
  4. 对命名空间和混合内容人工复核。
  5. 先使用页面提供的复杂示例验证当前选项和运行方向,再替换为自己的数据。
  6. 检查输出区、状态提示和限制说明,确认结果符合预期后再复制、下载或继续处理。

可运行示例

工作区中的“示例 1”和“示例 2”按钮会载入对应内容。两个示例覆盖不同结构、方向或边界,可以直接运行并观察输出与状态提示。

示例 1

catalog:
  "@attributes":
    lang: zh-CN
  tool:
    - "@attributes": { id: 31 }
      "#text": TOML 转换
    - "@attributes": { id: 40 }
      "#text": YAML CSV 转换

示例 2

<release version="1.5"><tools><tool id="31">TOML Converter</tool><tool id="40">YAML CSV Converter</tool></tools><ready>true</ready></release>

输入规则

  • YAML 转 XML 需要唯一根键。
  • 属性与文本必须使用 @attributes 和 #text。
  • 自定义标签、外部实体和复杂混合内容不受支持。
  • 文本输入在运行前按字符计数,当前页面上限为 1,000,000;文件类功能另按页面显示的文件上限执行。
  • YAML 转 XML 要求一个根键。

输出规则

  • 重复 XML 元素映射为 YAML 数组。
  • YAML 注释、锚点和 XML 指令不会保留。
  • 命名空间与混合内容必须人工复核。
  • 输出只反映当前输入、方向和选项;切换模式或修改输入后应重新运行,不应把旧结果当成新结果。
  • 复杂混合内容、注释和命名空间不能无损往返。

限制与注意事项

  • YAML 转 XML 要求一个根键。
  • 复杂混合内容、注释和命名空间不能无损往返。
  • 拒绝 YAML 自定义标签和 XML 实体声明。

数据处理说明

YAML 和 XML 解析器都在当前浏览器内运行,不加载远程引用、外部实体或服务器资源。关闭或刷新页面后,本工具不会保留本次数据。

FAQ

转换会上传YAML 或 XML内容吗?

不会。解析、转换和结果生成都在当前浏览器标签页内完成。

能保证完全无损往返吗?

不能。不同格式的类型、注释、顺序和二进制能力不同,页面会说明主要损失点。

为什么某些输入会被拒绝?

工具会拒绝不安全整数、危险键、过深结构或目标格式无法明确表示的值,避免静默改写。

XML 属性如何写在 YAML 中?

使用 @attributes 对象;文本节点使用 #text,与现有 JSON/XML 工具一致。

命名空间能无损保留吗?

不能保证。前缀、声明位置和复杂混合内容需要人工复核。

会加载外部实体吗?

不会,DTD 和 ENTITY 声明会在 XML 解析前被拒绝。

更新日期: 2026-08-09