Solved

Parse XML response (Tuple??)

  • 13 October 2021
  • 3 replies
  • 8 views

Hi All, i have been banging my head against this for a while. Im trying to parse an api call response I get ( XML returned) . I have tried Flattening it. I have tried Fragmenting it, I have tried swearing at it. None of the things I have tried have worked. I don't really understand how this data is structured. Its nested I think, with something like tuples??? there is a Name, Number and Text for each attribute?? Any help or direction appreciated. Happy to learn. I'm trying to return the "number" value of NZTM 2000 Northing and NZTM 2000 Easting as attributes... Many Thanks for your suggestions.

icon

Best answer by ebygomm 13 October 2021, 13:11

View original

3 replies

Userlevel 1
Badge +21

If you are just trying to get those two values - NZTM 2000 Northing and NZTM 2000 Easting i would probably use the XMLXQueryExtractor

for $ x in //CustomField
where $x[matches(Name,"NZTM 2000.*")]
return 
{fme:set-attribute($x/Name,$x/Number/text())}

Expose NZTM 2000 Easting, NZTM 2000 Northing under Expose Attributes

Userlevel 6
Badge +33

This can de done by the XmlFragmenter.

Fragment path: Response/CustomFields/CustomField

Enable Flattening = Yes

Expose attributes: UUID, Name Number.

Then filter only the features with the oordinates, rename the Number attributes, and merge them together with an aggregator.

If you are just trying to get those two values - NZTM 2000 Northing and NZTM 2000 Easting i would probably use the XMLXQueryExtractor

for $ x in //CustomField
where $x[matches(Name,"NZTM 2000.*")]
return 
{fme:set-attribute($x/Name,$x/Number/text())}

Expose NZTM 2000 Easting, NZTM 2000 Northing under Expose Attributes

Many Thanks @ebygomm​    just what i needed and i learnt about the xmlxQueryExtractor and syntax at the same time, great!!.I do like learning new stuff!!

 I appreciate your help

and thanks for your idea too @nielsgerrits​ .

Steve

Reply