Hallo,
ich möchte aus einer XML Datei einen Wert auslesen und dann anschließend in einer CSV Datei speichern. Alle Werte funktionieren wunderbar, aber nicht wenn es sich um einen CDATA Wert handelt, in diesem Fall alles unter DESCRIPTION.
Habe es per XML.au3 -> _XML_GetValue und auch mit _StringBetween versucht, leider erfolglos. Jemand evtl. einen Hinweis für mich?
XML: XML Datei
<RESPONSE>
<PRODUCTS>
<PRODUCT>
<MASTER>abc123-1</MASTER>
<MODEL>abc123</MODEL>
<EAN>1231231231231</EAN>
<NAME>Produktname</NAME>
<PRODUCTS_PRICE_RECOMMENDED>15,00</PRODUCTS_PRICE_RECOMMENDED>
<DESCRIPTION>
<![CDATA[
Hier stehen Produktinfos. <br> <br> <b>Inhaltsstoffe:</b> <ul><li>dies und das</li></ul><br> <br>
]]>
</DESCRIPTION>
<PRODUCTS_MANUAL/>
</PRODUCT>
</PRODUCTS>
</RESPONSE>
Alles anzeigen
C
#include <IE.au3>
#include <File.au3>
#include <FileConstants.au3>
#include <XML.au3>
#include <String.au3>
;Datei mit Artikelnummern
$file= "T:\artikel.csv"
$ArtArray=0
;Artikelnummern in Array laden
_FileReadToArray($file, $ArtArray)
; _ArrayDisplay($ArtArray, "1D array - count", Default, 8)
;CSV für später erstellen
$ameise=FileOpen("T:\texte.csv",2)
;ersten beiden Spalten vom Array auslassen
For $i = 2 to UBound($ArtArray)-1;
;Gänsefüßchen und Semikolon entfernen
$Artnr = StringTrimRight(StringReplace($ArtArray[$i],chr(34),""),1)
$oXML=("https://www.hersteller.com/xmlapi/api.php?command=product&model="&$Artnr&".xml")
;$beschreibung = _XML_GetValue($oXML,"/INNOCIGS_API_RESPONSE/PRODUCTS/PRODUCT/DESCRIPTION")
$beschreibung=_StringBetween($oXML,"<DESCRIPTION><![CDATA[","]]></DESCRIPTION>")
;ConsoleWrite("$beschreibung=[" & $beschreibung & "]" & @CRLF)
FileWrite($ameise,$beschreibung)
Next
FileClose($ameise)
Alles anzeigen