XML(可扩展标记语言)是 W3C 于 1998 年发布的标记语言标准,用成对的标签描述数据结构,例如 <name>张三</name>。下面重点说明需要注意的符号。
XML特殊字符处理
XML 只预定义了 5 个实体:< <、> >、& &、" "、' '。其他字符用数字实体(中)或直接写 UTF-8 字符。
示例
输入:<note date="2026-11-11"><to>Tom</to><body>Hi</body></note>
XML 转 JSON结果:
{
"note": {
"@date": "2026-11-11",
"to": "Tom",
"body": "Hi"
}
}
说明:属性加 @ 前缀,同名子元素合并为数组(常见约定)。
注意事项
- 解析外部 XML 时要禁用外部实体,防止 XXE 攻击
- XML 转 JSON 没有唯一标准,属性和同名元素的表示方式因工具而异
- 声明的 encoding 必须与文件实际编码一致
- 文本中的 & 和 < 必须转义
Python 示例
下面是 Python 中处理XML的常用写法:
import xml.etree.ElementTree as ET
root = ET.fromstring("<user><name>张三</name></user>")
print(root.find("name").text) # 张三
# 解析不可信数据建议用 defusedxml运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的XML/JSON互转工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【XML 转 JSON 属性怎么表示?】常见约定是在属性名前加 @,文本内容用 #text 表示。
【XML 文件开头的声明必须写吗?】不是必须的,没有声明时默认 XML 1.0、UTF-8。
【什么是 XXE?】XML 外部实体注入,攻击者通过 DOCTYPE 引用本地文件或内网地址,解析时应禁用外部实体。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。
标签: 文本处理