示例#1
0
 def _match(self):
     unmatched1, unmatched2 = TreeMatcher._match(self)
     # Unravel some ill-matched attributes
     rewired = []
     for pair in self._mapping[:]:
         n1, n2 = pair
         if n1.nodeType == Node.ATTRIBUTE_NODE:
             ppartner = self._get_partner_in_t2(self._tree1.get_parent(n1))
             if ppartner != self._tree2.get_parent(n2):
                 self._mapping.remove(pair)
                 unmatched1.append(n1)
                 unmatched2.append(n2)
     for n1, n2 in [(x,y) for x in unmatched1 for y in unmatched2]:
         if (n1.nodeType, n2.nodeType) == (Node.ATTRIBUTE_NODE,)*2 and \
                 self._tree1.get_label(n1) == self._tree2.get_label(n2):
                 ppartner = self._get_partner_in_t2(self._tree1.get_parent(n1))
                 if ppartner == self._tree2.get_parent(n2):
                     self._map(n1, n2)
示例#2
0
 def __init__(self, tree1, tree2, f=0.6, t=0.5, script_store=ScriptStore):
     TreeMatcher.__init__(
         self, tree1, tree2, f, t, DomTreeIface, script_store)