A implementation for *X-tree Diff: An Efficient Change Detection Algorithm for Tree-structured Data*
npm install @dovyih/x-tree-diffA implementation for X-tree Diff: An Efficient Change Detection Algorithm for Tree-structured Data.
Paper link:
``shell`
npm install --save @dov/x-tree-diffor
yarn add @dov/x-tree-diff
`ts
import { XMLXTreeDiff } from '@dov/x-tree-diff'
const xmlStr =
;const xmlStr2 =
;const xmlDiff = new XMLXTreeDiff(xmlStr, xmlStr2);
const { oldTree, newTree } = xmlDiff.diff();
/*
oldTree:
yidafu(dov yih)
x-tree-diff
newTree:
yidafu(dov yih)
x-tree-diff
*/
`Advanced Usage
if you want to implement your own Tree Struct Diff,you should implement
XTreeDiff class -- two method you need impl buildXTree dumpXTree.`ts
abstract class XTreeDiff {
public abstract buildXTree(rawTree: T): XTree; public abstract dumpXTree(xTree: XTree): T;
}
`see
src/XMLXTreeDiff.ts for more detail.API
Implement:
+
XMLXTreeDiff xml impl
+ HTMLXTreeDiff Dom implOthor:
+
XTreeDiff abstract class. Implemetn core X-Tree Diff alogrithm
+ XTree core data struct
+ EditOption, five option: NOP,INS,DEL,UPD,MOV`| property | description |
| --- | -- |
| lable | tag name|
| type | Element or Text Node|
| value | text string value |
| index | |
| nMD | |
| tMD | |
| nPtr | |
| Op | EditOption |
| nId | |
| pPtr | |
| data | extra data field |