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

求助:批量修改XML文件bndbox标签内节点顺序(Linux环境)

批量调整XML中节点顺序的解决方案

单个XML文件处理命令

使用xmlstarlet的编辑模式,将<bndbox>内的ymin节点移动到xmax节点之前,命令如下:

xmlstarlet edit -L --move "//bndbox/ymin" --position before "//bndbox/xmax" 目标文件.xml
  • -L参数表示直接原地修改文件(无需生成临时文件)
  • //bndbox/ymin定位所有<bndbox>下的ymin节点
  • --position before "//bndbox/xmax"指定将目标节点移动到xmax节点的前面

批量处理/assets目录下所有XML文件

用Shell循环遍历目录内所有.xml文件,批量执行调整命令:

cd /assets
for xml_file in *.xml; do
    xmlstarlet edit -L --move "//bndbox/ymin" --position before "//bndbox/xmax" "$xml_file"
done

注意事项

  1. 若未安装xmlstarlet,先通过包管理器安装:
    • Debian/Ubuntu系:sudo apt install xmlstarlet
    • RHEL/CentOS系:sudo yum install xmlstarlet
  2. 如果XML文件包含命名空间(比如根节点有xmlns="xxx"属性),需要在命令中添加命名空间映射:
    xmlstarlet edit -L -N ns=http://example.com/your-namespace --move "//ns:bndbox/ns:ymin" --position before "//ns:bndbox/ns:xmax" "$xml_file"
    
  3. 处理后可验证节点顺序,执行以下命令查看某个文件的<bndbox>内节点顺序:
    xmlstarlet sel -t -m "//bndbox/*" -v "local-name()" -n 验证文件.xml
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 08:22:06