按Tagconten对XMLFile排序

2024-09-30 18:14:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多XML文件没有排序。我想按一个名为“title”的标签内容对它们进行排序。我知道标题的顺序: 1.)编辑 2.)内容 3)俱乐部 等。 每个文件都有另一个“标题”—内容。在

1号文件的XML结构如下所示:

<article>
<someTags>
</someTags>
<title>editorial</title>
</article>

如何浏览所有文件并按定义的顺序进行排序? 文件名可以类似于:“sorted_01.xml”、“sorted_02.xml”等等。 我怎么才能得到这个? 非常感谢你的帮助!:)


Tags: 文件编辑标题内容排序顺序titlearticle
2条回答

另一种方法(未经测试)

import glob, os
from lxml import etree
d = {}
titles = ['editorial', 'content' , 'club', ...] # ordered titles
for fname in glob.glob('*.xml'):
     tree = etree.parse(fname)
     title = tree.xpath('//title/text()')[0]
     subtitle = tree.xpath('//subtitle/text()')[0]
     key = '%s_%s' % (title, subtitle)
     d[key] = fname
for idx,title in enumerate(titles, 1):
     os.rename(d[title], 'sorted_%02d.xml' % idx)

^{}^{}与函数一起使用,该函数将title标记的文本作为键函数返回。在

import glob
import xml.etree.ElementTree as ET

def get_title(filepath):
    tree = ET.parse(filepath)
    return tree.find('.//title').text
    # Find `title` element and return the text of the element.

filepaths = glob.glob('*.xml')
print(sorted(filepaths, key=get_title))

demo。在

相关问题 更多 >