Reputation: 135
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
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.
2. I initialize another variable named jsonString
and set its value with converting the xmlString
to json.
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").
Hope it helps~
Upvotes: 2