# xml-diff **Repository Path**: mirrors_emmetio/xml-diff ## Basic Information - **Project Name**: xml-diff - **Description**: Diff and patch contents of XML documents - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-09-24 - **Last Updated**: 2026-03-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Diff XML documents The goal of this module is to calculate diff between *text content* of two XML or HTML documents, preserving its tag structure: ```js import diff from '@emmetio/xml-diff'; const from = `

Lorem ipsum dolor sit amet consectetur, adipisicing elit.

`; const to = `

Lorem ipsum dolor sit amet aspernatur, doloribus in libero.

`; const result = diff(from, to); console.log(result); /*

Lorem ipsum dolor sit amet consectetur, adipisicing elitaspernatur, doloribus in libero.

*/ ``` --- > Project development is sponsored by [Xcential Corporation](https://xcential.com) --- ## Features * **High performance**: uses [small and fast XML scanner](https://github.com/emmetio/html-matcher), written in pure JavaScript. * **Supports multiple dialects**: able to parse invalid HTML, even JSX and Angular templates. * **Works everywhere**: doesn’t use browser DOM or APIs, runs in any browser, Node.JS and WebWorkers. ## Installation & usage Install it as regular npm module: ``` npm install @emmetio/xml-diff ``` This module exposes main `diff(from, to)` function which accepts two text documents and returns patched `to` document with updates marked with `` and `` tags. ## How it works * Takes XML document and strips all markup data from it (tags, comments, CDATA etc.), leaving plain text content: `
Hello world!
` → `Hello world!`. * Collapses and reduces insignificant white space characters like new lines, tabs and so on into a single space to reduce noise when comparing formatted documents. * Performs diff with Google’s [Diff Match Patch](https://github.com/google/diff-match-patch) library. * Applies patches to second document’s (`to`) plain content. * Restores markup and whitespace data of original document