Library to complement libxmljs and especially make namespaces easier to deal with.

@dreptin dreptin authored on 28 Apr 2021
src Initial commit 1 year ago
test Initial commit 1 year ago
.editorconfig Initial commit 1 year ago
.eslintrc.json Initial commit 1 year ago
.gitignore Initial commit 1 year ago
LICENSE Initial commit 1 year ago
README.md docs: formatting in the docs 1 year ago
index.js Initial commit 1 year ago
package-lock.json Initial commit 1 year ago
package.json chore: added the git repo to package.json 1 year ago
README.md

libxmljs-extra

Library of functions to complement libxmljs.

const libxmljs = require('libxmljs');
const extras = require('libxmljs-extra');

const xml = `
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="http://www.my-namespace.org/">
  <child>
    <grandchild>Hello</grandchild>
  </child>
  <child>
    <grandchild>World</grandchild>
  </child>
</root>`;

const xmlDoc = libxmljs.parseXml(xml);

// Sets the global namespace of the document
extras.setNamespace(xmlDoc, 'namespace', 'http://www.my-namespace.org/');

const grandchildren = extras.find(xmlDoc, '//grandchild');

grandchildren.forEach((grandchild) => console.log(grandchild.text())); // Prints "Hello\nWorld"

console.log(extras.count(xmlDoc, '//grandchildren')); // Prints "2"

Docs

count(xmlDoc, xpath)

Counts the amount of results of the provided XPath.

args
xmlDoc The instance of Document representating the XML document.
xpath The XPath to count in xmlDoc.

returns
The amount of results.

find(xmlDoc, xpath)

Finds the result of the provided XPath.

args
xmlDoc The instance of Document representating the XML document.
xpath The XPath to get in xmlDoc.

returns
The found Element or Elements.

setNamespace(xmlDoc, alias, url)

Sets the namespace to use for the specified Document.

args
xmlDoc The Document instance to set the namespace of.
alias The namespace alias.
url The namespace URL.

returns
void