|
He aquí unas funciones que me he hecho para manejarme con el xml (basadas en simplexml). Leer xml: Sirve para leer un código xml de un fichero
{codecitation class="brush:php"}
<?php function leer_xml($fichero){ //Comprobamos que existe el fichero if (file_exists($fichero)) { //Lo cargamos como objeto con simplexml $dom = simplexml_load_file($fichero); } else{ echo 'Fallo al abrir '.$fichero.'<br/>'; $dom = -1; } if(!$dom) return -1; return $dom; } ?>
{/codecitation}
Una alternativa sería para leer xml desde una variable:
{codecitation class="brush:php"}
<?php function leer_xml ( $xml ){ //Comprobamos que existe la variable if ( $xml ) { //Lo cargamos como objeto con simplexml $dom = simplexml_load_string ( $xml ); } else{ echo 'Fallo al leer el código<br/>' ; $dom = - 1 ; } if(! $dom ) return - 1 ; return $dom ; } ?>
{/codecitation}
Función insertar_nodo: Añade un nodo/hijo a la estructura xml
{codecitation class="brush:php"}
<?php function insertar_nodo ( $nodo , $datos , $fichero , $duplicar , $duplicados ){ //Leemos fichero if(( $xml = leer_xml ( $fichero )) == - 1 ) return - 1 ; //Comprobamos si puede haber nodos duplicados o no y si los hay if( $duplicar == 0 ) $stop = buscar_nodo ( $nodo , $duplicados , $fichero ); else $stop = 0 ; //Si no hay nodos duplicados o si puede haberlos, seguimos if( $stop == 0 ){ //Guardamos todos los datos en un nuevo nodo $tag = $xml -> addChild ( $nodo ); foreach( $datos as $valor ) $tag -> addChild ( $valor [ 'tag' ], $valor [ 'dato' ]); //Guardamos el fichero $xml -> asXML ( $fichero ); } return 0 ; } ?>
{/codecitation}
Buscar nodo: Busca dentro de los nodos de un xml
{codecitation class="brush:php"}
<?php function buscar_nodo ( $nodo , $datos , $fichero , $case_sensitive ){ $encontrado = 0 ; //Leemos el fichero if(( $xml = leer_xml ( $fichero )) == - 1 ) return - 1 ; //Comprobamos si es case sensitive if(! $case_sensitive ) $case_sensitive = 0 ; switch( $case_sensitive ){ case 0 : //Recorremos los nodos foreach( $xml -> $nodo as $tag ) foreach( $datos as $valor ) //Comparamos valor del nodo con el nuestro if( strtolower ( $tag -> $valor [ 'tag' ]) == strtolower ( $valor [ 'dato' ])) $encontrado = 1 ; break; case 1 : foreach( $xml -> $nodo as $tag ) foreach( $datos as $valor ) if( $tag -> $valor [ 'tag' ] == $valor [ 'dato' ]) $encontrado = 1 ; break; } return $encontrado ; } ?>
{/codecitation}
Modificar nodo: Modifica los valores de un nodo:
Leer más...
|
Muy buena la ayuda, me gusta la maner...
Espero que no les parezca dificil, pu...
nose
He intentado usar wordpress para el b...