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à
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';
},
);
},
);
},
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.
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)
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();
}
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.
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.