You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将带id属性的XML转换为指定格式的JSON?

如何将指定XML转换为目标格式JSON

下面提供几种实用的实现方式,帮你把给定的XML转换成要求的JSON格式:

方法一:使用Python(标准库,无需额外安装)

Python自带的xml.etree.ElementTree可以直接解析XML,手动构建目标JSON结构即可:

import xml.etree.ElementTree as ET
import json

# 替换为你的XML内容
xml_content = '''<?xml version="1.0" encoding="UTF-8"?>
<AdditionalFields>
   <AdditionalField id="Token">Tr3stdGf9Nf7zPJBPzwiv1</AdditionalField>
   <AdditionalField id="OrderId">10449-1371587</AdditionalField>
   <AdditionalField id="Code">0190</AdditionalField>
   <AdditionalField id="TxnNumber">279</AdditionalField>
   <AdditionalField id="TranslationID" />
</AdditionalFields>'''

# 解析XML根节点
root = ET.fromstring(xml_content)
additional_fields = {}

# 遍历所有AdditionalField节点,构建键值对
for field in root.findall('AdditionalField'):
    field_id = field.get('id')
    # 处理空节点:没有文本内容就设为空字符串
    field_value = field.text.strip() if field.text else ""
    additional_fields[field_id] = field_value

# 生成目标JSON并输出
result = {"AdditionalFields": additional_fields}
print(json.dumps(result, indent=2))

运行代码后就能得到你需要的JSON格式。

方法二:使用JavaScript(Node.js环境)

需要借助xml2js库解析XML,步骤如下:

  1. 先安装依赖:
npm install xml2js
  1. 编写转换代码:
const xml2js = require('xml2js');
const xmlContent = `<?xml version="1.0" encoding="UTF-8"?>
<AdditionalFields>
   <AdditionalField id="Token">Tr3stdGf9Nf7zPJBPzwiv1</AdditionalField>
   <AdditionalField id="OrderId">10449-1371587</AdditionalField>
   <AdditionalField id="Code">0190</AdditionalField>
   <AdditionalField id="TxnNumber">279</AdditionalField>
   <AdditionalField id="TranslationID" />
</AdditionalFields>`;

// 配置解析器,处理空值和属性映射
const parser = new xml2js.Parser({
  explicitArray: false, // 避免单个节点被强制转为数组
  valueProcessors: [value => value === undefined ? "" : value.trim()]
});

parser.parseString(xmlContent, (err, parsedResult) => {
  if (err) throw err;
  
  // 兼容单个/多个节点的情况
  const fields = Array.isArray(parsedResult.AdditionalFields.AdditionalField)
    ? parsedResult.AdditionalFields.AdditionalField
    : [parsedResult.AdditionalFields.AdditionalField];
  
  const additionalFields = {};
  fields.forEach(field => {
    additionalFields[field.$.id] = field._ || "";
  });
  
  const finalResult = { AdditionalFields: additionalFields };
  console.log(JSON.stringify(finalResult, null, 2));
});

方法三:在线工具快速转换

如果不想写代码,可以用XML转JSON的在线工具,在工具设置里开启「将节点属性转为键」「空节点转为空字符串」这类选项,粘贴XML内容后就能直接得到目标JSON。

内容的提问来源于stack exchange,提问作者burak ramazan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:45:37