Subversion Repository Public Repository

Nextrek

Diff Revisions 735 vs 736 for /legal-map/ajax/fetch_xml_tree.php

Diff revisions: vs.
  @@ -1,11 +1,28 @@
1 1 <?php
2 2 $xml = simplexml_load_file(dirname(__FILE__)."/../xml/".$_REQUEST["xmlfile"], 'SimpleXMLElement', LIBXML_NOCDATA);
3 3
4 - if (isset($_REQUEST["id_padre"])) {
5 - $root_nodes = $xml->xpath('//NODO[@ramoid="'.$_REQUEST["id_padre"].'"]/NODO');
6 - ?><pre><?php print_r($root_nodes);?></pre><?php //stampa debug dello xml
4 + $json_nodes = array();
5 + $json_nodes["nodes"] = array();
6 +
7 + if (isset($_REQUEST["idpadre"])) { //ramo non radice
8 + $xml_nodes = $xml->xpath('//NODO[@ramoid="'.$_REQUEST["idpadre"].'"]/NODO');
9 +
7 10 } else { //restituisci solo i nodi radice
8 - $root_nodes = $xml->xpath('/ROOT/NODO');
9 - ?><pre><?php print_r($root_nodes);?></pre><?php //stampa debug dello xml
11 + $xml_nodes = $xml->xpath('/ROOT/NODO');
10 12 }
13 +
14 + foreach ($xml_nodes as $key => $value) {
15 + $node = array();
16 +
17 + //var_dump($value);
18 + $node["id"] = (integer)$value->attributes()->ramoid;
19 + $node["is_leaf"] = ($value->attributes()->leaf=="TRUE");
20 + $node["ramodescrizione"] = (string)$value->ramodescrizione;
21 + $node["descrizioneoriginale"] = (is_object($value->descrizioneoriginale)) ? (string)$value->descrizioneoriginale[0] : (string)$value->descrizioneoriginale;
22 + $node["descrizionealbero"] = (string)$value->descrizionealbero;
23 + array_push($json_nodes["nodes"], $node);
24 + }
25 +
26 + echo json_encode($json_nodes);
27 +
11 28 ?>