我试图比较两个具有相同内容但有时不同行的XML文件。 为了克服这个问题,我试图对一个子节点上的XML进行排序(通常在两个文件中的位置都不同)。
这是我的示例XML文件
Sample
AggrDataSet
Registered Customer 103
RC103
CM022
Registered Customer 055
RC055
CM022
Registered Customer 047
RC047
CM022
Registered Customer 015
RC015
CM022
Registered Customer 024
RC024
CM022
我正在尝试基于父节点的节点进行排序。 无论我尝试哪种方法,我的文档都无法排序。 我尝试使用XSLT,但是排序不起作用。 我什至尝试编写python脚本,但无法排序。
这是我的python脚本-
import sys
from lxml import etree
filename, tag = sys.argv[1:]
doc = etree.parse(filename, etree.XMLParser(remove_blank_text=True))
root = doc.getroot()
root[:] = sorted(root, key=lambda el: el.findtext(tag))
print etree.tostring(doc, pretty_print=True)
我执行python test.py 2.xml membId来运行脚本(请注意,2.xml是输入xml的文件名,而membId是我正在寻找的标签)。
对于我要去哪里出错的任何帮助,我将深表感谢。 我只是从Python开始,所以我可能犯了一些非常明显的错误。 python脚本或XSLT解决方案(均可)对我有用!