# 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