# XmlReader

(plugins.XmlReader)

## Overview

`XMLReader` is an XML parsing tool designed to process XML data. It provides two main methods for reading XML content, catering to both file-based and string-based sources. Both methods provide access to the hierarchical structure of the XML, including child nodes, attributes, and content, making them versatile for various XML processing needs.

## **Returned Types**

[XmlNode](https://docs.servoy.com/reference/servoyextensions/server-plugins/xmlreader/xmlnode),

## Methods Summarized

| Type                                                                       | Name                                                                       | Summary                              |
| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | ------------------------------------ |
| [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) | [readXmlDocumentFromFile(argument)](#readxmldocumentfromfile-argument)     | Reads an XML document from a file.   |
| [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) | [readXmlDocumentFromString(argument)](#readxmldocumentfromstring-argument) | Reads an XML document from a string. |

## Methods Detailed

### readXmlDocumentFromFile(argument)

Reads an XML document from a file.

**Parameters**

* [Object](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/object) **argument** ;

**Returns:** [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) An array of XmlNode objects representing the parsed XML document read from the file.

**Sample**

```js
// specifies a reference to a file containing valid XML
var xmlNodes = plugins.XmlReader.readXmlDocumentFromFile('c:/test.xml');
var childNodes = xmlNodes[0].getChildNodes();
// shows a dialog to open an xml file, then reads the file
var xmlFile = plugins.file.showFileOpenDialog(1);
var xmlNodes = plugins.XmlReader.readXmlDocumentFromFile(xmlFile);
var childNodes = xmlNodes[0].getChildNodes();
```

### readXmlDocumentFromString(argument)

Reads an XML document from a string.

**Parameters**

* [String](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/string) **argument** ;

**Returns:** [Array](https://docs.servoy.com/reference/servoycore/dev-api/js-lib/array) An array of XmlNode objects representing the parsed XML document read from the string.

**Sample**

```js
var xmlString = '<books><book price="44.95">' +
'<title>Core Java 1.5</title>' +
'<author>Piet Klerksen</author>' +
'<nrPages>1487</nrPages>' +
'</book>' +
'<book price="59.95">' +
'<title>Developing with Servoy</title>' +
'<author>Cheryl Owens and others</author><nrPages>492</nrPages></book></books>';
var xmlNodes = plugins.XmlReader.readXmlDocumentFromString(xmlString);
```

***
