Ciao a tutti il titolo forse non e' molto chiaro ma non sapevo come mettere altrimenti.
Ho la necessita di fare il parsing di un file di questo tipo
codice:<?xml version="1.0" ?> <update_packet tableName="" nullValue="{_NULL_}" transID="IID93119464815:Sat May 29 00:13:53 GMT+0200 2004"> <update id="IID88087640470"> <field name="cliente" type="String" oldValue="guido" newValue="carmelo" key="false" /> </update> <update id="IID86692974530"> <field name="cliente" type="String" oldValue="mario" newValue="franco" key="false" /> </update> </update_packet>
Se faccio domxml_xmltree per ricostruire l'albero di questo documento, chiaramente, come si vede anche dal file mi trovo a dover accedere a degli array.....
Ne posto solo una parte per semplicità
Io con dom_xml so accedere a dei nodi tipo questi <dati>ciao</dati> ma non riesco a capire come ragionare per accedere a questi tipi di nodi... ho provato molte funzioni come da guida ma senza successo.codice:class domdocument { var $name = '#document'; var $url = ''; var $version = '1.0'; var $standalone = -1; var $type = 9; var $compression = -1; var $charset = 1; var $children = array ( 0 => class domelement { var $type = 1; var $tagname = 'update_packet'; var $attributes = array ( 0 => class domattribute { var $type = 2; var $name = 'tableName'; var $value = ''; }, 1 => class domattribute { var $type = 2; var $name = 'nullValue'; var $value = '{_NULL_}'; }, 2 => class domattribute { var $type = 2; var $name = 'transID'; var $value = 'IID93119464815:Sat May 29 00:13:53 GMT+0200 2004'; }, ); var $children = array ( 0 => class domelement { var $type = 1; var $tagname = 'update'; var $attributes = array ( 0 => class domattribute { var $type = 2; var $name = 'id'; var $value = 'IID88087640470'; }, ); var $children = array ( 0 => class domelement { var $type = 1; var $tagname = 'field'; var $attributes = array ( 0 => class domattribute { var $type = 2; var $name = 'name'; var $value = 'cliente'; }, 1 => class domattribute { var $type = 2; var $name = 'type'; var $value = 'String'; }, 2 => class domattribute { var $type = 2; var $name = 'oldValue'; var $value = 'guido'; }, 3 => class domattribute { var $type = 2; var $name = 'newValue'; var $value = 'carmelo'; }, 4 => class domattribute { var $type = 2; var $name = 'key'; var $value = 'false'; }, ); }, ); },
Magari c'e' bisogno di qualche ciclo per muoversi all'interno degli array.
Qualcuno mi da qualche dritta per arrivare a capire come muoversi ?
Io ad esempio avevo provato cosi: (seguendo la guida del phpDay)
Questo ad esempio mi stampa il nome del nodo figlio del nodo principale xml ovvero <update></update> il mio output sara "update update".... ma come faccio ad accedere al valore di "id" ? o provato con diverse funzioni ma non ci riesco.codice:$domDoc = domxml_open_file( realpath('xml/deltapacket.xml') ) ; $root=$domDoc -> document_element(); $node_update = $root -> child_nodes(); foreach ($node_update as $nodo) { echo $nodo -> node_name(); }
Altra domanda perche questo non mi funziona ?
$root=$domDoc -> document_element();
$node_update = $root -> child_nodes();
$node_array = $node_update -> child_nodes();
poi con lo stesso ciclo come sopra non riesco ad accedere ai nodi con le funzioni dom.
Qualcuno mi illumina ?
Spero di essermi spiegato bene, non era facile.


Rispondi quotando
