Add Diff feature

add a light-weight Diff feature, which can diff the attributes and
elements. here are still some bugs to fix.