DeserializeXML

Estimated reading: 8 minutes 1679 views

The Deserialize XML activity is used to convert structured XML format, which can be passed as a “string” or an “XML Object,” into an XDocument.

The output of the deserialized XML activity empowers the user to execute various actions, including extracting nodes/attributes and creating nodes/attributes within the XML Document.

XML is a markup language employed to define the structure and content of data, while XDocument represents the output yielded by the Deserialize XML activity. 

Properties

INPUT

DelayAfter: It helps the user to add a delay to start the execution of the further activity. The format of the delay here is milliseconds. By default, it will be set to zero. When the option is left blank, no delay is considered.

DelayBefore: It helps the user to add delay before the execution of the current activity. The format of the delay here is milliseconds. By default, it will be set to zero. When the option is blank or zero, no delay is considered in the activity’s execution.

InputString:* Specify the XML nodes that need to be passed as input here. Either you can hardcode the value or you can call the value as a variable (from the output of other activities). The XML format needs to be passed within double quotes. Click here to view the XML format.

MISC

DisplayName: Displays the name of the activity. It can also be customized for troubleshooting purposes

SkipOnError: Specify the Boolean value as “True or False.”
True: Continues to execute the workflow irrespective of any error thrown.
False: Stops the workflow if it throws any error.
None: If the option is specified as blank, by default the activity will perform as “False” action.

Version: It specifies the version of the XML automation feature in use.

OUTPUT

XML Document:* It helps you to view the output value of the XML object as a deserialized  XDocument format. The “output value” accepts in “Xdocument variable” datatype. (Refer to the steps in creating a workflow.)

Represents mandatory fields to execute the workflow

Example

The following illustration demonstrates the process of obtaining the most popularly used book titles and their corresponding IDs using the XML feature.

A private library has been requested to extract and provide a list of the most popularly used book titles along with their respective IDs to its administrative office.

The input is an XML response that has been extracted from the library’s website and is present in a text document. This response contains a comprehensive list of book details, including title, ID, author, year, category, description, and price of each book.

In this scenario, the input will be an XML Object variable specifically designed for utilizing XML features. Using the XML activities, we will extract the “Book title” and “Book ID” from this variable. Subsequently, the extracted values of the “Book title” and “Book ID” will be updated within an Excel spreadsheet under their respective columns, thus enabling the continuation of the subsequent stages of the process. Please scroll down to the bottom of the page to access the sample file for this use case.

Steps to execute the bot 

1. Create a solution named “BookExtraction.”
2. Drag and drop the “ReadText” activity from the text automation feature and set as “StartNode”.
a. Navigate to the properties section and provide the file path of the XML where the input file is stored. (Refer to the attached XML text document.)
b. Create a variable named “XMLInput” to store the read data from the “Text” property.

3. Drag and drop the “Deserialize XML” activity from the XML feature and place it next to the “ReadText” activity.
a. Navigate to the n the “XMLDocument” property. This variable will store the deserialied output of the XML document.

4. Now, add the “GetNodes” activity and place it next to the “DeserializeXML” activity.
a. Navigate to properties and choose the filter type as “XPath” from the drop-down. The purpose of selecting “XPath” is to extract the titles of the “books.”
b. Enter the filter value as “/catalog/book/title” from which the text needs to be extracted.
c. Declare a variable for the “XmlNode.” Let’s name it “XPNode.

5. Next, drag and drop the “ForEach” activity to iterate and write each value that has been extracted from the node using the “XPath expressions.”
a. Enter “XPNode” as the input value here, which is where westored the extracted book titles.
b. The values from “XPNode” have been assigned to the “Item.”
c. Select “System.Xml.Linq.XNode” as the “TypeArgument” since it’s a list of values.

6. Now, drag and drop the “GetText” activity and place it inside the “ForEach” activity.
a. Navigate to the properties and enter the variable “item” in the “XMLNode” property.
b. Declare a variable for the “Output” property to retrieve the text. Let’s name it “Text.

7. Drag and drop the “GetNodes” activity and place it next to the “WriteLine” activity.
a. Navigate to properties and choose the filter type as “Node Name” from the drop-down.
b. Enter the filter value as “book” from which the text needs to be extracted.
c. Declare a variable for the “XmlNode” segment. Let’s call it XNode.

8. Next, drag and drop the “ForEach” activity to iterate and write each value that has been extracted from the “Node” using the “XPath expressions.” The purpose of using the “Node” is to retrieve the “Book ID.”
a. Enter “XNode” as the input value here, where we stored the extracted book titles.
b. The values from “XNode” have been assigned to the “Item.”

c. Select “System.Xml.Linq.XNode” as the “TypeArgument” since it’s a list of values. Click here to know how to choose “TypeArgument”.

9. Drag and drop the “GetAttributes” activity and place it inside the “ForEach” activity. The purpose of using the “GetAttribute” is to extract the value corresponding to the “Book ID.”
a. Navigate to the properties and enter the variable “item” in the “XMLNode” property.
b. Declare a variable for the “Output” property named “Attributes” to obtain the list of values available in the node list

10. Add a “WriteLine” activity to the workflow to inspect the extracted value.
a. Enter the input string as “Attributes(0).Value.ToString” to retrieve the value of the attribute available in the node against the attribute name.

11. Add an “Assign” activity and place it next to the “WriteLine” activity. We are going to assign the values from “Attributes(0).Value.ToString” to the variable “AttrValue.” The purpose of this assignment is to consolidate the values into a single variable.
a. Create a variable named “AttrValue” in the variable panel.
b. Click on the “Variable Types” column and select “String” from the “dropdown”menu.
c. Enter “AttrValue” in the “To” field of the assign activity.

d. Enter “Attributes(0).Value.ToString” in the “Value” field of the assign activity.

12. Then add the “GetText” activity and place it next to the “Writeline” activity.
13. Navigate to the properties and enter the “AttributeName” as “AttrValue”.
14. Enter the variable as “item” in the “XMLNode” property.
15. Place the “GetExcelObject” next to the “WriteLine” activity and select the input file path containing the list of inputs.
a. Drag and drop the “WriteCell” activity into the scope. Specify the cell value as “A” + Counter.ToString, since the Book title is located in the “A” column.
b. Assign the value stored from “GetText” to the “WriteCell” activity and set the “InputString” value as “BookTitle.”
c. Indicate the sheet name as “Sheet1,” where the data is stored.
d. The purpose of using a counter is to increment the values for the “WriteCell” activity. To accomplish this, include an “Assign” activity. Prior to this, declare a variable named “Counter” and select the “DataType” as “Int32.”  The reason for choosing the integer “DataType” is to increment the value, and specify the default value as “2,” as it consider from the header as 1. Refer 13th point how to assign the counter increment value in the “Assign” activity.
e. Drag and drop another “WriteCell” activity into the scope. Specify the cell value as “B” + Counter.ToString, as the Book ID is located in the “B”.
f. Transfer the stored value from “GetText” to the “WriteCell” activity and set the “InputString” value as “Text.” Place an “Assign” activity next to the “GetExcelObject” scope and input the declared variable, in this case, “Counter.” Specify the “To” value as “Counter,” and set the “Value” as “Counter + 1.” This increments the counter for further use.

The bot executes the workflow and extract the “Book titles” and “Book id” and updates them into the excel sheet. 

Share this Doc

DeserializeXML

Or copy link

CONTENTS