XML Response verarbeiten
Hallo zusammen,
per API Get rufe ich bei unserem Logistiker Lagerbestände von einzelnen Artikeln ab. Als Response erhalte ich pro SKU eine XML Datei und speichere diese dann nach parseXML in einem Textfeld.
Das Textfeld sieht dann folgendermaßen aus:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfGetStockLevelReturn xmlns:xsd="http://www.url.org/2001/XMLSchema" xmlns:xsi="http://www.url.org/2001/XMLSchema-instance" xmlns="http://url.de/">
<GetStockLevelReturn>
<StockLevel>0</StockLevel>
<InProcess>0</InProcess>
<Reserved>0</Reserved>
<BackOrder>0</BackOrder>
<StockIndex>BAD</StockIndex>
<HasError>false</HasError>
</GetStockLevelReturn>
<GetStockLevelReturn>
<StockLevel>24</StockLevel>
<InProcess>0</InProcess>
<Reserved>0</Reserved>
<BackOrder>0</BackOrder>
<StockIndex>CCS-MUC</StockIndex>
<HasError>false</HasError>
</GetStockLevelReturn>
<GetStockLevelReturn>
<StockLevel>1</StockLevel>
<InProcess>0</InProcess>
<Reserved>0</Reserved>
<BackOrder>0</BackOrder>
<StockIndex>REWORK</StockIndex>
<HasError>false</HasError>
</GetStockLevelReturn>
</ArrayOfGetStockLevelReturn>
Es werden in diesem Beispiel 3 verschiedene StockIndexes aufgelistet. Mir stellt sich jetzt die Frage wie ich an die Werte vom <GetStockLevelReturn> mit dem StockIndex "CCS-MUC" komme. In diesem Fall der mittlere. Problem ist, dass sich die Position ändern kann. Also komme ich mit item(any, 1) an dieser Stelle nicht weiter. Es kann auch sein, dass er an 1. oder letzter Stelle kommt.
Ich hab schon einiges probiert, aber bis dato leider ohne Erfolg. Habt ihr vielleicht eine Idee?
Freue mich auf den Austausch.
Viele Grüße,
Andi
4 Antworten
-
Hi Andi. Schau mal, ob Dir das hilft. Mirko
let xml := "<?xml version=""1.0"" encoding=""utf-8""?> <ArrayOfGetStockLevelReturn xmlns:xsd=""http://www.url.org/2001/XMLSchema"" xmlns:xsi=""http://www.url.org/2001/XMLSchema-instance"" xmlns=""http://url.de/""> <GetStockLevelReturn> <StockLevel>0</StockLevel> <InProcess>0</InProcess> <Reserved>0</Reserved> <BackOrder>0</BackOrder> <StockIndex>BAD</StockIndex> <HasError>false</HasError> </GetStockLevelReturn> <GetStockLevelReturn> <StockLevel>24</StockLevel> <InProcess>0</InProcess> <Reserved>0</Reserved> <BackOrder>0</BackOrder> <StockIndex>CCS-MUC</StockIndex> <HasError>false</HasError> </GetStockLevelReturn> <GetStockLevelReturn> <StockLevel>1</StockLevel> <InProcess>0</InProcess> <Reserved>0</Reserved> <BackOrder>0</BackOrder> <StockIndex>REWORK</StockIndex> <HasError>false</HasError> </GetStockLevelReturn> </ArrayOfGetStockLevelReturn>"; let jsonResult := parseXML(xml); let result := for i in jsonResult.ArrayOfGetStockLevelReturn.GetStockLevelReturn do if contains(text(i), "CCS-MUC") then i end end; item(result, 0).StockLevel.@
Content aside
- vor 1 JahrZuletzt aktiv
- 4Antworten
- 56Ansichten
-
2
Folge bereits