Newer
Older
libxmljs-extra / README.md
# libxmljs-extra

Library of functions to complement [libxmljs](https://github.com/libxmljs/libxmljs).

```JS
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, '//grandchild')); // 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 `Element`s.  


### 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