XML(可扩展标记语言)是 W3C 于 1998 年发布的标记语言标准,用成对的标签描述数据结构,例如 <name>张三</name>。下面重点说明工具、命令行与代码三种方式。
XML使用方法
- 打开本站 XML/JSON 互转工具,粘贴 XML
- 点击转换得到 JSON,查看层级结构
- 需要反向转换时粘贴 JSON 转为 XML
# 格式化并检查是否格式良好
xmllint --format data.xml
xmllint --noout data.xml && echo OK
# 按 XSD 校验
xmllint --noout --schema schema.xsd data.xmlimport xml.etree.ElementTree as ET
root = ET.fromstring("<user><name>张三</name></user>")
print(root.find("name").text) # 张三
# 解析不可信数据建议用 defusedxml
示例
输入:<user><name>张三</name><age>30</age></user>
XML 转 JSON结果:
{
"user": {
"name": "张三",
"age": "30"
}
}
说明:属性加 @ 前缀,同名子元素合并为数组(常见约定)。
规则说明
- 元素名不能以数字或“xml”开头
- 空元素可以写成 <br/>
- 注释写法 <!-- ... -->,不能嵌套
- CDATA 段 <![CDATA[ ... ]]> 中的内容不解析
- “格式良好”是语法正确,“有效”是还符合 DTD/XSD
JavaScript 示例
下面是 JavaScript 中处理XML的常用写法:
const doc = new DOMParser().parseFromString(xml, "application/xml");
if (doc.querySelector("parsererror")) console.log("XML 格式错误");
doc.querySelector("name").textContent;运行前确认输入的字符集(推荐 UTF-8),结果可以用本站工具交叉核对。
本站的XML/JSON互转工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。
常见问题
【XML 转 JSON 属性怎么表示?】常见约定是在属性名前加 @,文本内容用 #text 表示。
【XML 文件开头的声明必须写吗?】不是必须的,没有声明时默认 XML 1.0、UTF-8。
【什么是 XXE?】XML 外部实体注入,攻击者通过 DOCTYPE 引用本地文件或内网地址,解析时应禁用外部实体。
文中示例可以在本站对应工具中验证;处理密码、证件号等敏感数据时,请注意保护隐私。
标签: 文本处理