pythonxml属性顺序_python 生成 xml文件 属性的顺序问题

面对要求XML属性保持特定顺序的奇葩需求,通过查阅资料和研究,发现Python的xml库默认无法设置属性顺序。解决方案是手动构造XML节点字符串,然后使用minidom将排序后的属性插入XML文档中,以确保导出时属性顺序正确。
摘要由CSDN通过智能技术生成

需求很奇葩。

文档示例

用python 的xml 导出的xml文件,相应的内容是

我们都知道,属性的顺序是不影响,xml值的读取的。

但是,就是有奇葩的需求,需求方还非常强势,说了不影响,但还是要求顺序。

无语了,想办法吧。

1查看,文档,有无重载方法可以传入序号。

没有

2查baidu google stackflow 没有可用的方法,但有线索

3手动拼接该节点字符串,再生成element,将该element加入xml document tree中,导出,还是排好序的

查看2的线索。

http://stackoverflow.com/questions/662624/preserve-order-of-attributes-when-modifying-with-minidom

attrs = self._get_attributes()

a_names = attrs.keys()

a_names.sort()

看到了目标 下一步,找源码

find / -name xml

找到

cat /

python生成xml文件

先上代码: #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ from xml.dom.minidom import Document def readFi ...

Python 读写XML文件

Python 生成XML文件 from xml.dom import minidom # 生成XML文件方式 def generateXml(): impl = minidom.getDOMImple ...

Python中使用dom模块生成XML文件示例

在Python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文件,下一篇文章再继续介绍Dom解析XML文件. 在生成XML文件中,我们主 ...

Python:Dom生成XML文件(写XML)

http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...

python操作xml文件

一.什么是xml? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. abc.xml <?xml version="1.0&q ...

使用XML序列化器生成XML文件和利用pull解析XML文件

首先,指定XML格式,我指定的XML格式如下: <?xml version='1.0' encoding='utf-8' standalone='yes' ?>

PHP中的生成XML文件的4种方法(转)

<?xml version="1.0" encoding="utf-8"?>

使用Pull解析器生成XML文件和读取xml文件

有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

获得mysql内容,生成xml文件,另外,为了webservice发送

随机推荐

Ruby的模型关系随笔

1 Class和Module的实例方法也就是所有具体类和具体Module的类方法,因为具体类和具体Module分别是Class和Module的实例.例如Object.new对应着Class#new,K ...

java对txt文件内容追加

package com.test; import java.io.FileOutputStream; /** * 对txt文件在文本追加内容 * @author Wdnncey * */ public ...

《APUE》第三章笔记(2)

read函数 调用read函数从打开的文件中读数据. #include ssize_t read(int filedes, void *buf, size_t nby ...

FZU 1686 神龙的难题 DLX反复覆盖

DLX反复覆盖: 须要一个A*函数剪支 Problem 1686 神龙的难题 Accept: 462    Submit: 1401 Time Limit: 1000 mSec    Memory L ...

js中,&lpar;function&lpar;&rpar;&lbrace;&rcub;&rpar;&lpar;&rpar;的用法解析

(function($){...})(jQuery)  含义 经常用,今天总结一下,下文摘自某网友的总结: (function($){...})(jQuery)实际上是匿名函数,不懂得朋友可以继续往下 ...

&lbrack;SDOI2015&rsqb;星际战争

水题啦 网络流+二分 误差才10^-3,乱搞直接开longlong暴力每个都乘1000,输出时除一下就好了 # include # define IL in ...

SuperMap iObject入门开发系列之五管线属性查询

本文是一位好友“托马斯”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢. 管线属性查询功能针对单一管线图层进行特定的条件查询,然后将查询结果输出为列表,并添加点位闪烁功能,例如查询污水管线中, ...

WEB框架-Django框架学习(二)- 模型层

今日份整理为模型层 1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库, ...

66&period; 二叉树的前序遍历&period;md

描述 给出一棵二叉树,返回其节点值的前序遍历. 您在真实的面试中是否遇到过这个题? 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3]. Binary Tree Pr ...

oracle 修改进程

SQL> show parameter session NAME TYPE VALUE------------------------------------ ----------- ----- ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值