Suraj Revankar
Suraj Revankar

Reputation: 135

How to fetch xml attribute value in liquid template - XML to JSON Liquid

I am trying to fetch the xml attribute value using liquid template. Examples are as below.

XML example:

    <ns0:root xmlns:ns0="http://customnamespace.com" xmlns:ns1="http://customnamespace2.com">
  <ns1:product>
  <ns1:name QualifierID="std.lang.all" >TV</ns1:name>
  <ns1:price>499.9</ns1:price>
 </ns1:product>
 </ns0:root>

Liquid Template used:

{
"name": "{{content.product.name['QualifierID']}}",
"price": "{{content.product.price}}",
}

Output expecting :

  {
"name": "std.lang.all",
"price": "499.9"

}

I tried couple of ways but not able to fetch the xml attribute value. it gives me empty value for name.

Best Regards,

Suraj

Upvotes: 1

Views: 2234

Answers (1)

Hury Shen
Hury Shen

Reputation: 15734

According to some test, it seems we can't get the attribute(QualifierID) value of the xml by liquid. And I also can not find any useful information about getting attribute value of xml by liquid. But I can provide a workaround for your reference, please refer to my logic below.

1. I initialize a variable named xmlString and set the value with your xml data to simulate your situation. enter image description here

2. I initialize another variable named jsonString and set its value with converting the xmlString to json. enter image description here

3. After that, use "Parse JSON" action to parse the jsonString we get above. And then use "Compose" action to compose the json data which you expected.(The schema in "Parse JSON" was generated by the result from "Initialize variable 2"). enter image description here

Hope it helps~

Upvotes: 2

Related Questions