Neues Thema starten
Beantwortet

XML2Spreadsheet: Probleme beim Parsen eines einfachen XML Baum

Hallo Synesty Community und Support,


ich versuche gerade das XML zu parsen, welches beim Aufruf der folgenden URL zurückgegeben wird: https://mws-eu.amazonservices.com/

Intuitiv würde ich sagen, dass das Parsing so auszusehen hat:  

<#assign row = target.addRow()>
<#list xml["PingResponse"] as res>
  <#assign row = target.addRow()>
${row.addCol("timestamp",attr("timestamp",res['Timestamp']))}
${addColumns(row, res)}
</#list>

 Ich iteriere durch alle PingResponses (wovon es nur einen gibt) und gib mir für jeden das Attribut Timestamp im timestamp Tag aus.

Leider bekomme ich ein leeres Spreadsheet zurück.

Normalerweise habe ich keine Probleme dabei, solch eine Xml Datei zu parsen.

Ich hatte das selbe schonmal vor einem Monat versucht und kam zu dem selben Ergebnis.

Könntet ihr mir da mal bitte aushelfen? 


Viele Grüße

Stefan Helme


Beste Antwort

Hallo Stefan, 


die parsing template ist fast korrekt. Es fehlt noch die Namespace Deklaration in der 1. Zeile: 


<#ftl ns_prefixes={"D":"https://mws.amazonservices.com"}>
<#assign row = target.addRow()>
<#list xml["PingResponse"] as res>
  <#assign row = target.addRow()>
${row.addCol("timestamp",attr("timestamp",res['Timestamp']))}
${addColumns(row, res)}
</#list>


Viele Grüße

Torsten


Antwort

Hallo Stefan, 


die parsing template ist fast korrekt. Es fehlt noch die Namespace Deklaration in der 1. Zeile: 


<#ftl ns_prefixes={"D":"https://mws.amazonservices.com"}>
<#assign row = target.addRow()>
<#list xml["PingResponse"] as res>
  <#assign row = target.addRow()>
${row.addCol("timestamp",attr("timestamp",res['Timestamp']))}
${addColumns(row, res)}
</#list>


Viele Grüße

Torsten


1 Person gefällt dies

Hallo Torsten,


ach das ist ein Name Space.

Für mich sah das aus, als wäre das ein normales Attribut eines Tags.

Wieder was dazu gelernt.


Vielen Dank und viele Grüße

Stefan Helme

Anmelden um einen Kommentar zu veröffentlichen