14. The non-transitory machine-readable storage medium of claim 9 , wherein the hash value for a node is generated based on a name of the node, one or more attributes of the node, and hash values of all immediate children of the node.
9. A non-transitory machine-readable storage medium storing instructions, which when executed by one or more processors, causes: receiving a hash level indicating a particular depth in a first document and a second document, wherein: the first document comprises the first plurality of nodes, wherein one or more nodes of the first plurality of nodes are at a depth that is greater than the particular depth; and the second document comprises the second plurality of nodes, wherein one or more nodes of the second plurality of nodes are at a depth that is greater than the particular depth; based on the hash level, identifying a first subset, of the first plurality of nodes, that do not include any nodes, in the first plurality of nodes, that are greater than the particular depth, wherein the first subset includes at least two nodes that are at the same depth; based on the hash level, identifying a second subset, of the second plurality of nodes, that do not include any nodes, in the second plurality of nodes, that are greater than the particular depth, wherein the second subset includes at least two nodes that are at the same depth; for each node included in the first and the second subsets, computing a hash value based on said each node and one or more descendants of said each node; performing a plurality of comparisons between hash values of different nodes that are only in the first and second subsets; and based on the plurality of comparisons, generating an edit script.