2016-01-07 19 views
6
<?xml version="1.0" encoding="UTF-8"?> 
<current> 
    <city id="1259229" name="Pune"> 
     <coord lon="73.86" lat="18.52" /> 
     <country>IN</country> 
     <sun rise="2016-01-07T01:38:29" set="2016-01-07T12:42:53" /> 
    </city> 
    <temperature value="27.49" min="27.49" max="27.49" unit="metric" /> 
    <humidity value="43" unit="%" /> 
    <pressure value="955.13" unit="hPa" /> 
    <wind> 
     <speed value="2.65" name="Light breeze" /> 
     <gusts /> 
     <direction value="113.502" code="ESE" name="East-southeast" /> 
    </wind> 
    <clouds value="36" name="scattered clouds" /> 
    <visibility /> 
    <precipitation mode="no" /> 
    <weather number="802" value="scattered clouds" icon="03d" /> 
    <lastupdate value="2016-01-07T06:25:45" /> 
</current> 

Próbuję przekonwertować ten XML do csv Próbowałem kilka rzeczy tak, ale ja nie otrzymuję żadnej logiki do konwersji danych do formatu csvjak przekonwertować plik XML do pliku csv w javascript

 try { 
      var file : File = new File(dw.io.File.IMPEX + '/src/weather.csv'); 
      var fileWriter : FileWriter = new FileWriter(file, 'UTF-8'); 
      var csw : CSVStreamWriter = new CSVStreamWriter(fileWriter); 
      csw.writeNext(//here I want array of string data); 
      csw.writeEndDocument(); 
      csw.close(); 
      fileWriter.close(); 
     } 
     catch(e) { 
      return PIPELET_ERROR; 
     } 

Ale nie wiem, jak mogę przekonwertować dane xml na ciągi tablicowe

+2

Zobacz http://stackoverflow.com/questions/7949752/cross-browser-javascript-xml-parsing, aby sparsować XML w obiekty JavaScript. Następnie wybierasz bity, które chcesz umieścić w swojej tablicy. –

Odpowiedz

4

Ponieważ używasz JavaScript po stronie serwera, ponadto DemandwareScript, sprawdź klasę XMLStreamReader i składnię E4X. https://en.m.wikipedia.org/wiki/ECMAScript_for_XML E4X to EcmaScript Dla Xml, zastrzeżonej składni używanej do dostępu XML DOM do Demandware. Potrzebny byłby jeszcze jeden obiekt File do odczytywania pliku XML.

Również twój plik XML nie jest "płaski", więc musisz zdefiniować, które elementy XML znajdą się w pliku CSV.