Morjens!
Mulla on iso XML-tiedosto (muutama mega, 60000 riviä...), jota tarvitsisi vähän parsia ja kerätä tavaraa tietokantaan.
Pääelementin sisällä on wfs:member elementtejä, jotka Javalla onnistuu hakea näin:
NodeList wfsMember = doc.getElementsByTagName("wfs:member"); for(int i = 0; i < wfsMember.getLength(); i++) { }
doc tulee taas täältä:
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); Document doc = documentBuilder.parse(WeatherDatabaseUpdater.class.getResourceAsStream("wfs.xml"));
PHP:llä olen koko höskän toteuttanut näin:
foreach ($data->children("wfs", true)->member as $member) { $dataType = $dataTypes[(string) $member-> children("omso", true)->PointTimeSeriesObservation-> children("om", true)->observedProperty-> attributes("xlink", true)->href]; foreach ($member-> children("omso", true)->PointTimeSeriesObservation-> children("om", true)->result-> children("wml2", true)->MeasurementTimeseries-> children("wml2", true)->point as $point) { $time = $point->children("wml2", true)->MeasurementTVP->children("wml2", true)->time; $value = $point->children("wml2", true)->MeasurementTVP->children("wml2", true)->value; $data[$dataType][] = array($time, $value) } }
Miten Javalla pystyn ketjuttamaan noita elementtejä, kuten vaikka toisella rivillä, kun haen $dataType-muuttujaan arvon, tai toisessa foreach-silmukassa?`
Tarkoitus olisi tallentaa tuo data tietokantaan, mitä saan parsittua tuolta.
Pastettelin tiedoston alkua Pastebiniin. Ei mennyt kaikki, kun kokorajoitus oli 0,5 MB. http://pastebin.com/G4RRDzcP
Aihe on jo aika vanha, joten et voi enää vastata siihen.