Хорошо, вот мое решение: мой входной файл "input.xml" выглядит так:
<element-name attrib_7="value7" attrib_6="value6" attrib_5="value5" attrib_4="value4" attrib_3="value3" attrib_2="value2" attrib_1="value1" />
<element-name attrib_5="value5" attrib_4="value4" attrib_3="value3" attrib_1="value1" attrib_2="value2" attrib_6="value6" attrib_2="value2" />
<element-name attrib_6="value6" attrib_4="value4" attrib_2="value2" attrib_1="value1" />
в выходной файл "output.xml":
<element-name
attrib_1="value1"
attrib_2="value2"
attrib_3="value3"
attrib_4="value4"
attrib_5="value5"
attrib_6="value6"
attrib_7="value7"
/>
<element-name
attrib_1="value1"
attrib_2="value2"
attrib_3="value3"
attrib_4="value4"
attrib_5="value5"
attrib_6="value6"
/>
<element-name
attrib_1="value1"
attrib_2="value2"
attrib_4="value4"
attrib_6="value6"
/>
Код здесь:
infile = open("input.xml","r")
outfile = open("output.xml","w")
xmlsorted =[]
span = 2
for line in infile:
if "<element-name" in line and "/>" in line:
attriblist =[]
for i in range(0, len(line), span):
step1 = line.split(" ")
attriblist.append(step1)
a,b,c,d,e,f,g,h,i = "","","","","","","","",""
sortedattribs = []
for attrib in step1:
if "<element-name" in attrib:
a = attrib + "\n"
if "attrib_1=" in attrib:
b = attrib + "\n"
if "attrib_2=" in attrib:
c = attrib + "\n"
if "attrib_3=" in attrib:
d = attrib + "\n"
if "attrib_4=" in attrib:
e = attrib + "\n"
if "attrib_5=" in attrib:
f = attrib + "\n"
if "attrib_6=" in attrib:
g = attrib + "\n"
if "attrib_7=" in attrib:
h = attrib + "\n"
if "/>" in attrib:
print("test123")
i = attrib
if a != "":
sortedattribs.append(a)
if b != "":
sortedattribs.append(b)
if c != "":
sortedattribs.append(c)
if d != "":
sortedattribs.append(d)
if e != "":
sortedattribs.append(e)
if f != "":
sortedattribs.append(f)
if g != "":
sortedattribs.append(g)
if h != "":
sortedattribs.append(h)
if i != "":
sortedattribs.append(i)
a,b,c,d,e,f,g,h,i = "","","","","","","","",""
xmlsorted.append(sortedattribs)
outfile.writelines(sortedattribs)
infile.close()
outfile.close()