3.3.0 • Published 4 years ago

common-xml-features v3.3.0

Weekly downloads
4
License
MIT
Repository
github
Last release
4 years ago

Introduction

When working on Electron, you may have the same code executed in the renderer process and in the master/node process.

It could be an issue if you have to manage XML :

  • Which XML libraries to use in a node process ?
  • How code could be the same in both contexts (renderer, node) ?
  • Impact of the XML libraries in the size of the browserify'ied files ?

Many browser supports natively XML features like DOMParser, XMLSerializer,... it would be a shame to not use Chrome's implementations when hosted in a renderer process.

Purposes

Purposes of this package are :

  • whatever the context, provide a common API for accessing XM features
  • when loaded in a node context
  • when loaded in a renderer context
    • fallbacks to native implementation and prevent xmldom and xmlpath to be inlined by browserify

Samples

import * as XMLFeatures from 'common-xml-features';

let xmlDoc = new XMLFeatures.DOMParser().parseFromString(result, 'text/xml');
if (XMLFeatures.getParserError(xmlDoc)) {
    // we are in trouble !
}

let entityResult = xmlDoc.evaluate('//html//body//iframe//@src', null, null, XMLFeatures.XPathResult.FIRST_ORDERED_NODE_TYPE, null);
assert(entityResult.nodeType === XMLFeatures.Node.ELEMENT_NODE)
...
let xmlDoc = new XMLFeatures.domImplementation.createDocument(null, null, null);
...
let xmlSerializer = new XMLFeatures.XMLSerializer();
let transferData = xmlSerializer.serializeToString(xmlDoc);

API

You have to use proxy to be redirected to the right class factory according to the context :

  • (common-xml-features).DOMImplementation
  • (common-xml-features).DOMParser
  • (common-xml-features).XMLSerializer Other objects like Node, Element, Document are pure interfaces and are created through methods of classes above.

Some interfaces are exported as well :

  • (common-xml-features).XPathResult
  • (common-xml-features).XPathExpression
  • (common-xml-features).XPathNSResolver

A helper function (experimental, returned value is not yet defined) for checking if the document is a content

  • (common-xml-features).getParserError You can check if it returns null (no error) or not (parsing error).

Next

  1. Support another browsers : IE, Edge, Safari, ...
3.3.0

4 years ago

3.2.1

4 years ago

3.2.0

4 years ago

3.1.3

4 years ago

3.1.2

4 years ago

3.1.1

4 years ago

3.0.2

4 years ago

3.1.0

4 years ago

3.0.1

4 years ago

3.0.0

4 years ago

2.1.9

6 years ago

2.1.8

6 years ago

2.1.7

6 years ago

2.1.6

6 years ago

2.1.5

6 years ago

2.1.4

6 years ago

2.1.3

6 years ago

2.1.2

6 years ago

2.1.1

6 years ago

2.1.0

6 years ago

2.0.2

6 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.2.5

6 years ago

1.2.4

6 years ago

1.2.3

6 years ago

1.2.2

6 years ago

1.2.1

6 years ago

1.2.0

6 years ago