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

如何按id标签内的值排序XML文本?或快速转为JSON?

解决方案:XML 节点按id排序及转JSON

一、不转JSON直接按排序XML的节点

用XSLT可以直接处理XML结构,无需转换格式,是最适配的方案。

步骤1:编写XSLT排序脚本

保存为sort-data-by-id.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- 保留原XML的所有节点和属性 -->
  <xsl:template match="@*|node()">
    <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
  </xsl:template>

  <!-- 对包含<data>节点的父节点,按<id>值排序其子<data>节点 -->
  <xsl:template match="*[data]">
    <xsl:copy>
      <xsl:apply-templates select="@*"/>
      <!-- 按<id>数值升序排序,若<id>是字符串,将data-type改为text -->
      <xsl:apply-templates select="data">
        <xsl:sort select="id/text()" data-type="number" order="ascending"/>
      </xsl:apply-templates>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

步骤2:用命令行工具执行排序

Linux/macOS可直接用自带的xsltproc:

xsltproc sort-data-by-id.xsl 你的输入文件.xml > 排序后的输出文件.xml

Windows可使用msxsl.exe(本地工具)或Python的lxml库执行XSLT。

二、简便将XML转为JSON

用Python的xmltodict库可以快速完成转换,步骤如下:

步骤1:安装依赖

pip install xmltodict

步骤2:编写转换脚本(可选同时排序)

保存为xml2json.py:

import xmltodict
import json

# 读取XML文件
with open('你的输入文件.xml', 'r', encoding='utf-8') as f:
    xml_content = f.read()

# 转换为字典
data_dict = xmltodict.parse(xml_content)

# 可选:转换时同时按id排序(需根据你的XML根节点调整路径)
if 'root' in data_dict and 'data' in data_dict['root']:
    data_list = data_dict['root']['data']
    # 按id数值排序,若id是字符串则去掉int()
    data_list.sort(key=lambda x: int(x['id']))
    data_dict['root']['data'] = data_list

# 转换为JSON并保存
json_content = json.dumps(data_dict, indent=2, ensure_ascii=False)
with open('输出文件.json', 'w', encoding='utf-8') as f:
    f.write(json_content)

步骤3:运行脚本

python xml2json.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 01:46:19