Foros del Web » Programando para Internet » PHP »

leer <br> desde el xml

Estas en el tema de leer <br> desde el xml en el foro de PHP en Foros del Web. Hola, Tengo un xml bastante mal diseñado a mi gusto que es de la siguiente manera: <mistxts> <texto> <p class="titulo"> texto <p> <p class"nombre">texto texto ...
  #1 (permalink)  
Antiguo 03/12/2008, 20:15
 
Fecha de Ingreso: octubre-2008
Mensajes: 151
Antigüedad: 15 años, 6 meses
Puntos: 1
leer <br> desde el xml

Hola,

Tengo un xml bastante mal diseñado a mi gusto que es de la siguiente manera:


<mistxts>
<texto>
<p class="titulo"> texto <p>
<p class"nombre">texto texto <br /> texto texto <br /></p>
<p class ="descripcion"> texto texto texto <p/>
<p class"nombre">texto texto <br /> texto texto <br /></p>

</texto>
</mistxts>


Uno de los problemas es que se supone que "Nombre" esta dentro de "titulo" pero como esto fue pensado para flash no se preocuparon por eso y ahora tengo que hacer un ABM de esto en php. y tengo que mostrarle al usuario en forma de arbol o por grupos pero y como no esta echo asi en el php se me esta complicando mucho, si alguien sabe algua forma simple de resolverlo se lo agradeceria muchisimo.

Por otro lado cuando intento leer por ejemplo <p class"nombre"> no me respeta los <br /> que hay dentro me escribe todo el texto en la misma linea, alguien sabe como arreglar eso?.

desde ya muchas gracias
  #2 (permalink)  
Antiguo 04/12/2008, 06:10
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 9 meses
Puntos: 19
Respuesta: leer <br> desde el xml

de que manera estas leyendo el xml? postea el codigo
  #3 (permalink)  
Antiguo 04/12/2008, 23:20
 
Fecha de Ingreso: octubre-2008
Mensajes: 151
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: leer <br> desde el xml

el codigo para leer es el siguiente, es un poco rebuscado pero funciona exepto por lo del <br>:

Código PHP:
if(isset($_POST["TraerNom"]))
{
$Nom$_POST["selCat"].'.xml';

$xmlDoc = new DOMDocument(); 
$xmlDoc->load$Nom ); 

$searchNode $xmlDoc->getElementsByTagName"p" ); 
$searchNodE $xmlDoc->getElementsByTagName"p" ); 
$verificarTituloGrupo 0;
$varNombre 1;
$verificarTitulo2 0;
$verificarTitulo 0;
echo
'<br><br>Titulo:<b>'$_SESSION["Titulo"] .'</b><br>Grupo: <b>'.$_POST["selGrup"].'</b>';
foreach( 
$searchNode as $searchNode 
    {
    
$valueID $searchNode->getAttribute('class');     
    
$nodo $searchNode->nodeValue;
    
//echo $_POST["selTit"]. " = ". $nodo."<br><br>";
    
    
    
if($valueID == "titulo"
        {
            if(
$nodo == $_SESSION["Titulo"])
            {
            
            
$verificarTituloGrupo 1;
            }
            else
            {
            
$verificarTituloGrupo 0;
            }
        }
    
    if((
$valueID == "grupos")&& $verificarTituloGrupo == 1
        {
            if(
$nodo == $_POST["selGrup"])
            {
            
            
$verificarTitulo 1;
            }
            else
            {
            
$verificarTitulo 0;
            }
        }
        
    if(
$verificarTitulo == 1)
        {
            if(
$verificarTitulo2 == 1)
            {
                if(
$valueID == "nombre")
                {
                            echo
'<br><input type="text" name="txtNombre'.$varNombre.'" value="'.$nodo.'"/><a href="EliminarNodo.php?Categoria='.$Nom.'&Clase='.$valueID.'&valor='.$nodo.'">Eliminar</a>';
                            
$varNombre++;
                }
                
                    
            }
            else
            {
            
$verificarTitulo2 1;
            }
        }
        
        
    }

Lo que hace es una vez seleccionado el grupo o titulo del que se desea obtener los nombres busca ese titulo y luego empieza a imprimir el valor de los nodos "nombre" que le siguen en txts hasta encontrar otro nodo de clase "titulo" o "grupo".

el rango de clases es el siguiente: Titulo-Grupo-Nombre-Descripción

ahora tmb tengo problemas para el borrar, si tengo por ejemplo:

<p class="nombre">Un Nombre </p>
<p class="descripcion">Descripcion</p>
<p class="nombre">Otro Nombre </p>

tengo que borrar "Un Nombre" y por ende su descripción pero nose porq el foreach luego de borrar "Un Nombre" se saltea "descripción" y pasa a "Otro Nombre" (si hubiera otra descripcióon despues de esa iría a la 2 osea que se saltea lo que viene despues de lo que borra)

el codigo para borrar es el siguiente:

Código PHP:
$Cat $_GET["Categoria"];

        
$xmlDoc = new DOMDocument(); 
        
$xmlDoc->load$Cat ); 
        
$searchNode $xmlDoc->getElementsByTagName"p" ); 
$varNombre 0;
        foreach( 
$searchNode as $searchNode 
        
            {
             
$valueID $searchNode->getAttribute('class'); 
            
$nodo $searchNode->nodeValue;
        
//    echo "$valueID $varNombre  $nodo".'<br>';
            
if($valueID != "nombre" && $varNombre == 1)
                {
                
                
$root=$searchNode->parentNode;
                        
$root->removeChild($searchNode);
                }else
                {
                
$varNombre =0;
                }
            if(
$nodo == $_GET["valor"])
                    {    echo 
$searchNode->nodeValue;
                        
$varNombre 1;
                        
$root=$searchNode->parentNode;
                        
$root->removeChild($searchNode);
                    }
                    
            
            }
                
                
            
$xmlDoc->save($Cat); 
el borrar lo hago llamandoa otra pagina pasandole los parametros de clase valor del nodo y el xml que debe abrir.


si saben como solucionarlo o una forma mas facil les voy a estar eternamente agradecido.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:42.