我必須使用Python比較兩個XML文件。每個都有一個項目列表,我必須輸出哪些項目不會出現在兩個項目中。每個項目都有不同的屬性,需要同意查看它是否是相同的項目。Python XML解析文件比較
哪個解析器最適合。它必須已經包含在Python 2.7中。我看着etree,但它能讓我做我想要的東西嗎?或者還有其他更適合的東西。謝謝!要比較
我必須使用Python比較兩個XML文件。每個都有一個項目列表,我必須輸出哪些項目不會出現在兩個項目中。每個項目都有不同的屬性,需要同意查看它是否是相同的項目。Python XML解析文件比較
哪個解析器最適合。它必須已經包含在Python 2.7中。我看着etree,但它能讓我做我想要的東西嗎?或者還有其他更適合的東西。謝謝!要比較
這取決於,如果您的XML元素有子元素,該子元素也需要相比,使用DOM,
你的元素只有屬性,吳丹使用SAX是最好的方法,我發佈一些SAX代碼在這裏,你可以參考:
import xml.sax
from xml.sax.handler import ContentHandler
class TableHandler(ContentHandler):
def __init__(self):
self.columns = {}
def startElement(self, name, attrs):
if name == 'R':
for k, v in attrs.items():
if not self.columns.has_key(k):
self.columns[k] = []
self.columns[k].append(v)
def xml_to_table(xml_str):
handler = TableHandler()
xml.sax.parseString(xml_str, handler)
return handler.columns
if __name__ == '__main__':
txt = """<xml>
<R CatalogId="8"/><R CatalogId="8"/><R CatalogId="7"/>
</xml>
"""
columns = xml_to_table(txt)
print columns
您可以使用lxml。你可以通過第一個文件的項目,並檢查他們是否在第二個文件與xml.find(".//itemname")