1

Python を使用して 2 つの XML ファイルを比較する必要があります。それぞれにアイテムのリストがあり、両方に表示されないアイテムを出力する必要があります。各アイテムには、同じアイテムかどうかを確認するために同意する必要があるさまざまなプロパティがあります。

どのパーサーが最も適しているか。Python 2.7 に既に含まれている必要があります。etree を見ましたが、やりたいことを簡単に実行できますか? または、より適切な何かが他にありますか。ありがとう!

4

2 に答える 2

0

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
于 2012-07-04T09:45:21.667 に答える
0

lxmlを使用できます。最初のファイルのアイテムを調べて、それらが2番目のファイルにあるかどうかを確認できますxml.find(".//itemname")

于 2012-07-04T09:45:29.467 に答える