# XML 转义/反转义

转义与反转义 XML 特殊字符（& < > " '），可选数值引用、斜杠转义与 CDATA 包裹

> 标准页面: https://elysiatools.com/zh/tools/xml-escape

- **分类:** Format Conversion

- **关键词:** xml, 转义, 反转义, 编码, 解码, 实体, 特殊字符, xml 转义

## 概述

本工具提供便捷的 XML 字符转义与反转义服务，支持对 &、<、>、"、' 等特殊字符进行快速编码与解码。您还可以根据安全与格式需求，选择转义斜杠、将非 ASCII 字符转换为数值引用，或直接将文本包裹在 CDATA 段中，以确保 XML 数据的正确解析与传输安全。

## 输入项

- **输入文本** (textarea): Enter text to escape or unescape...
- **操作** (select)
- **转义引号（&quot; &apos;）** (checkbox)
- **转义斜杠（&#47;）- OWASP 推荐** (checkbox)
- **非 ASCII 转为数值引用（&#xNNNN;）** (checkbox)
- **包裹在 CDATA 段中** (checkbox)
- **CDATA 元素标签（可选）** (text): e.g. description (leave empty for bare CDATA)

## 适用场景

- 需要在 XML 文档的文本节点或属性值中安全地插入 <、> 或 & 等保留字符，避免解析器报错时。
- 从外部系统接收到已转义的 XML 数据，需要将其还原为原始的可读文本进行排查时。
- 编写包含大量特殊字符或代码片段的 XML 配置文件，并希望使用 CDATA 标签进行包裹以简化书写时。

## 工作原理

- 在输入文本框中粘贴或输入需要处理的 XML 文本。
- 选择“转义”或“反转义”操作，并根据需要配置转义引号、转义斜杠、非 ASCII 转数值引用或 CDATA 包裹等选项。
- 工具将实时处理文本，并在输出区域生成符合 XML 规范的转义或反转义结果。

## 使用案例

- 准备 SOAP 接口请求体，对包含 HTML 标签或特殊符号的参数进行 XML 转义。
- 调试 Web Service 响应，将接收到的转义 XML 实体还原为清晰易读的原始数据。
- 编写 Android strings.xml 或 Maven pom.xml 配置文件，快速处理文本中的特殊字符。

## 常见问题

### 哪些字符会被默认转义？

默认会转义 XML 的五个核心预定义实体：& (amp)、< (lt)、> (gt)、" (quot) 和 ' (apos)。

### 为什么要转义斜杠（/）？

转义斜杠（转换为 &#47;）是 OWASP 推荐的安全实践，有助于防止某些上下文中的跨站脚本（XSS）或注入攻击。

### 什么是 CDATA 包裹，它有什么作用？

CDATA（字符数据）段用于告诉 XML 解析器该段落内的文本不应被解析为标记。这允许您直接书写 < 或 & 等字符而无需逐个转义。

### 非 ASCII 字符转换为数值引用有什么用？

将非英文字符转换为如 &#xNNNN; 的格式，可以确保 XML 文件在不支持特定字符集编码（如 UTF-8）的旧系统或传输通道中不出现乱码。

### 反转义操作会处理 CDATA 吗？

反转义主要用于将 XML 实体（如 &amp;）还原为原始字符。若要提取 CDATA 中的内容，通常需要先移除 CDATA 标记。

## 相关工具

- [HTML实体编码解码](https://elysiatools.com/zh/tools/html-entity-encoder): HTML实体编码和解码
- [Base32转换器](https://elysiatools.com/zh/tools/base32-converter): 将文本编码/解码为Base32格式，支持多种变体
- [Base58转换器](https://elysiatools.com/zh/tools/base58-converter): 将文本编码/解码为Base58格式，支持比特币和瑞波币变体
- [Base64转换器](https://elysiatools.com/zh/tools/base64-converter): 将数据编码/解码为Base64格式，支持URL安全选项
- [Base64URL 编解码](https://elysiatools.com/zh/tools/base64url-encoder): Base64URL（URL 安全的 Base64 变体，用于 JWT/JWS/JWE）编解码，并支持标准与 URL 安全 Base64 互转
- [Data URI 生成器](https://elysiatools.com/zh/tools/data-uri-generator): 将文件转换为 Data URI（Base64 或百分号编码），用于直接在 HTML、CSS 或 Markdown 中内联图片、字体等资源
- [十六进制字符串转换器](https://elysiatools.com/zh/tools/hex-to-string): 在文本与十六进制字符串之间互转，支持灵活分隔、前缀（0x/\x/U+）与大小写选项
- [十六进制/Unicode转换器](https://elysiatools.com/zh/tools/hex-unicode-converter): 在字符与十六进制(\xXX)和Unicode(\uXXXX)转义序列之间转换

## 示例

- [Android Java 序列化示例](https://elysiatools.com/zh/samples/android-serialization-java): Android Java 序列化示例，包括JSON序列化、反序列化和XML解析
- [Android Kotlin 序列化示例](https://elysiatools.com/zh/samples/android-serialization-kotlin): Android Kotlin 序列化示例，包括JSON序列化、反序列化和XML解析
- [macOS Objective-C 序列化示例](https://elysiatools.com/zh/samples/macos-serialization-objectivec): macOS Objective-C 序列化示例，包括JSON序列化、JSON反序列化和XML解析
- [Web Go 数据序列化示例](https://elysiatools.com/zh/samples/web-serialization-go): Web Go 数据序列化示例，包括JSON编码/解码和XML解析

## 相关内容

- [文本大小写、编码与规范化转换工具](https://elysiatools.com/zh/hubs/text-convert): 在一个专题中比较文本大小写转换、全半角转换、编码转换、Quoted-Printable 处理和行内文本规范化工具。
- [Text 工具专题](https://elysiatools.com/zh/hubs/text-utility): 探索 33 个围绕 text 的 utility 工作流工具，快速找到相近能力。
- [XML 转换、映射与 XPath 工具](https://elysiatools.com/zh/hubs/xml-convert): 围绕XML 转换、映射、合并与 XPath 提取整理的一组工具。
- [HTML 提取、清洗与 Markdown/PDF 导出工具](https://elysiatools.com/zh/hubs/html-convert): 在一个专题里比较 HTML 清洗、属性提取、图片地址提取、HTML 转 Markdown 和 HTML 转 PDF 工具，适合网页内容转换流程。
