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 :
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 :
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 :
Some interfaces are exported as well :
A helper function (experimental, returned value is not yet defined) for checking if the document is a content
Next
Author: Emmkimme
Source Code: https://github.com/emmkimme/common-xml-features
License: MIT license