# Parsing and sending XML

In this article, we'll explore ways of parsing and sending XML in UI Bakery. Review the sections below to learn how to do that.

## Parsing an XML string to a JS Object

1. Navigate to the **Custom code** tab and specify the following script:

```javascript
<script src="https://cdnjs.cloudflare.com/ajax/libs/fast-xml-parser/4.3.2/fxparser.min.js" ></script>
```

2. Create an **HTTP Request** action selecting the *GET* method and specifying the necessary *URL*.
3. Next, turn on the **Transform result** toggle to open the mapper field and specify the following code:

```javascript
const xmlContent = atob({{data.base64}});
  
const parser = new XMLParser();
return parser.parse(xmlContent);
```

{% hint style="info" %}
Instead of the *Transform result*, you can add a **JavaScript Code** action as the second step to the HTTP Request action.
{% endhint %}

4. Click **Execute action**.

{% @arcade/embed flowId="qOai5eaBTlOBuvOzd5D1" url="<https://app.arcade.software/share/qOai5eaBTlOBuvOzd5D1>" %}

## Sending an XML string from UI Bakery

1. Navigate to the **Custom code** tab and specify the following scripts:

```javascript
<script src="https://cdnjs.cloudflare.com/ajax/libs/fast-xml-parser/4.3.2/fxparser.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jstoxml@3.2.10/dist/jstoxml.min.js"></script>
```

2. Now, create a new action consisting of *two steps*:
   1. For the **first** step, add a **JavaScript Code** action that will generate an XML from JSON:<br>

      ```javascript
      const jsonData = await {{actions.requestData.trigger()}};
      return jstoxml.toXML(jsonData);

      //where requestData is an action that returns data to be sent as XML (for example, HTTP Request or Load Table action)
      ```
   2. For the **second** step, add an **HTTP Request** action that will send the request:\
      \
      — Select *POST* method and specify the *URL*\
      — For **Headers** - specify `Content-Type` `application/xml` \
      — For **Body** - `{{data}}`, as the result of the first step
3. Click **Execute action**.

{% @arcade/embed flowId="lfYWhJMpsOns5iOZX3Zx" url="<https://app.arcade.software/share/lfYWhJMpsOns5iOZX3Zx>" %}
