Sugerencias ... Si buscas algún código de programación en especifico , solo escribe alguna palabra relacionada , como por ejemplo : Calculadora , Metodo , Burbuja , Applets ... etc

Buscar

XML es uno de los lenguajes de marcas más populares dentro del desarrollo de aplicaciones web , ya que su fácil manejo y estructuración de contenido permite generar una mejor presentación de la información de una manera muy simple. Existen una gran cantidad de lenguajes de programación que manejan el uso de librerías para funciones XML , como PHP , Java , Python , etc ...
Para este ejemplo tenemos con entrada , la siguiente estructura XML , la cual hace referencia a un cuestionario.

XML:
  1. <?xml version="1.0"?>
  2. <Cuestionario>
  3.    
  4.   <Pregunta id="0" desc="Que lenguaje de programacion trabaja con JSP ?" tipo="2">
  5.     <Respuesta valor="1" id="a">Java</Respuesta>
  6.     <Respuesta valor="0" id="b">C++</Respuesta>
  7.     <Respuesta valor="0" id="c">PHP</Respuesta>
  8.     <Respuesta valor="0" id="d">HTML</Respuesta>
  9.     <Respuesta valor="0" id="e">Python</Respuesta>
  10.   </Pregunta>
  11.   <Pregunta id="1" desc="Son Navegadores WEB muy populares" tipo="1">
  12.  
  13.     <Respuesta valor="1" id="a">Google Chrome</Respuesta>
  14.     <Respuesta valor="1" id="b">Firefox</Respuesta>
  15.     <Respuesta valor="0" id="c">Fedora</Respuesta>
  16.     <Respuesta valor="0" id="d">Netbeans</Respuesta>
  17.     <Respuesta valor="0" id="e">Eclipse</Respuesta>
  18.   </Pregunta>
  19.   <Pregunta id="2" desc="Son sistemas operativos " tipo="1">
  20.     <Respuesta valor="1" id="a">linux</Respuesta>
  21.     <Respuesta valor="0" id="b">Eclipse</Respuesta>
  22.     <Respuesta valor="1" id="c">Windows</Respuesta>
  23.     <Respuesta valor="0" id="d">Java</Respuesta>
  24.     <Respuesta valor="1" id="e">Mac OS</Respuesta>
  25.   </Pregunta>
  26. </Cuestionario>

Dicho cuestionario esta ordenado en base a nodos , donde el nodo padre es “Cuestionario” , seguido del hijo que es “Pregunta” hasta llegar a los últimos nodos que es “Respuesta” , algunos nodos como Pregunta y Respuesta contiene atributos como id , desc y valor . estos contiene información que los diferencia de los otros nodos.

La búsqueda de un nodo XML en PHP , puede ser muy sencillo si utilizamos elementos DOM que nos permitan realizar búsquedas similares a las sentencias SQL en las bases de datos. XPath es un tipo de datos que nos permite dicho manejo , pero utilizando expresiones regulares como :

PHP:
  1. <?php
  2.     // Script para buscar un elemento dentro de un XML , utilizando XQuery   
  3.    
  4.     //(1) Cargar Archivo XML
  5.    
  6.     $dom = DOMDocument::load('cuestionarios/cues_mod1.xml', LIBXML_NOBLANKS);
  7.    
  8.     // (2) Crear DOMXPath
  9.     $xpath = new DOMXPath($dom);
  10.  
  11.     // Consulta Simple
  12.    
  13.     $verNode = $xpath->query("*[@id='1']//*[@valor='1']");
  14.  
  15.     // Obtener Preguntas
  16.    
  17.     if ($verNode && $verNode->length> 0) {
  18.        
  19.        
  20.         foreach ($verNode as $Nodo ) {
  21.            
  22.             echo "<p>$Nodo->nodeValue </p>";
  23.            
  24.            
  25.         } // fin del foreach
  26.        
  27.        
  28.            
  29.     } else {
  30.        
  31.        
  32.         echo "<p>Objeto no encntrado</p>";
  33.        
  34.     } // fin del if
  35.    
  36.    
  37. ?>

otro ejemplo de "econtrar y eliminar nodo "

PHP:
  1. <?php
  2. $dom = new DOMDocument();
  3. $dir_xml = "../Galeria/gal_neg_65.xml";
  4. $dom->load($dir_xml);
  5.  
  6. $searchNode = $dom->getElementsByTagName("Elemento");
  7.    
  8. foreach( $searchNode as $node )  {
  9.    
  10.     if ($node->getAttribute('id') == 3) {
  11.        
  12.             $dom->documentElement->removeChild($node)
  13.            
  14.     }
  15.    
  16. }
  17.  
  18. $dom->save($dir_xml);
  19.    
  20. ?>


Etiquetas: ,
Publicado en Codes, php


 2 comentarios


by mafuen :

Muy bueno el artìculo…, te felicito…!
gracias..
By Mafuen

Zarza :

WOW GRACIAS ME SALVASTE LA VIDA EN NINGUN LADO ENCONTRABA COMO ELIMINAR UN NODO GRACIAS. SALUDOS


 Deja un comentario