Simple Flow Designer Action with XML Parser Step example, anyone?

Todd Fudala1
Tera Contributor

I am experiencing the XML Parser Step not parsing a collection of nodes when more than one exists. Is there a demo available on simple parsing of a Response Body of XML with the XML Parser Step? My sample response body is below. The goal is to consume an API to get this response, parse it with XML Parser so I have an Array.Object of the products in the output variables so I can For Each on that Array in my parent Flow. See the screenshot attached for parser setup. If the response has 1 node it works but if it contains 2 or more it does not return the parsed node data.

 

<MyStoreInventoryResponseModel>
<products>
<products>
<productId>017916</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>8</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
<products>
<productId>022215</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>-1</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
<products>
<productId>022228</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>0</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
<products>
<productId>027130</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>0</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
<products>
<productId>022241</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>0</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
<products>
<productId>022257</productId>
<storeInfo>
<storeId>104</storeId>
<quantity>0</quantity>
<distance/>
<latitude>37.403809</latitude>
<longitude>-77.686236</longitude>
<phoneNumber>
<AreaCode>804</AreaCode>
<Prefix>608</Prefix>
<LineNumber>8632</LineNumber>
<FormattedPhoneNumber>(804) 608-8632</FormattedPhoneNumber>
</phoneNumber>
</storeInfo>
</products>
</products>
<url>/stores/104</url>
</MyStoreInventoryResponseModel>
1 REPLY 1

Daniel Draes
ServiceNow Employee
ServiceNow Employee

The weird part in your XML is the node <products> has child nodes of the same name <products>. Should the child node not be named <product> without the S?

I moddified your XML to match my understanding, and then the XML parser will work just fine.