libxmljs
npm install libxmljs
NodeJS bindings for libxml2 written in Typescript
Documentation
https://libxmljs.github.io/libxmljs/Examples
For more examples, check out the test suite.import libxmljs from "libxmljs";
libxmljs
.parseXmlAsync(
`
<?xml version="1.0" encoding="UTF-8"?>
<root>
<child foo="bar">
<grandchild baz="fizbuzz">grandchild content</grandchild>
</child>
<sibling>with content!</sibling>
</root>
`
)
.then((xmlDoc) => {
const gchild = xmlDoc.find("//grandchild")[0];
console.log(gchild.text()); // prints "grandchild content"
const child = xmlDoc.root()?.child(0);
console.log(child?.getAttribute("foo")?.value()); // prints "bar"
});
Package Scripts
npm run init-submodules
Clones libxml2 source code to vendor/libxml2
npm run configure
Generate new cmake config headers with cmake in vendor/libxml2.config. Used when updating to a new libxml2 version.
npm run build
Build the C++ source code using node-gyp
npm run swig
Generate a newsrc/libxml2.cc
andswig.xml
file by processing the native code using SWIG. Used when making changes to native code or any of the SWIG interface files (src/\*.i)
npm run tsgenerate
Generates typescript definitons for native bindings exports. Used when changes are made to native exports. Auto-generatesconstants.ts
,functions.ts
,types.ts
, andvariables.ts
withinlib/bindings/
npm run tsc
Compiles Typescript withinlib/
and outputs it todist/
Usenpm run dev
to put Typescript compiler into watch mode.
npm run test
Runs all tests intest/
using nodeunit. Usenpm run test -- -t TEST_NAME
to run a specific test.
npm run docs
Generates docs/
using Typedoc