Comunidad de diseño web y desarrollo en internet online

SimpleXML

Citar            
MensajeEscrito el 28 Abr 2008 10:19 am
Hola muy buenas, soy nueva en este foro y tambien en el tema del php, me gustaría hacer una consulta.

Estoy intentando aprender a modificar un xml desde php.

Tengo un xml sencillo:

Código :

<?xml version="1.0" encoding="utf-8"?>
<amigos>
<amigo>
<nombre>Juan</nombre>
<apellido>Sanzo</apellido>
</amigo>
<amigo>
<nombre>Eva</nombre>
<apellido>Amatriain</apellido>
</amigo>
</amigos>


Lo que quiero hacer que me den un nombre y con ello me escriba su apellido.

Entonces tengo un formulario sencillo, tb:

Código :

<body>
<form action="comparo_formulario.php" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
</form>
</body>


y lo comparo:

Código :

<?
$vbl = 'amigos.xml';
$contenido = utf8_decode(file_get_contents($vbl));
$xml = simplexml_load_string($contenido);

//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
Lo combierto a string para poderlo comparar luego

$cadena = sprintf("%s", $cadenatexto);

if ((string) $xml->amigo->nombre == $cadena) {
echo $xml->amigo->apellido, '<br />';
}

htmlentities((string) $xml->amigo->nombre);
?>


Bueno, esto es lo que tengo, pero no lo estoy haciendo bien, podria ayudarme alguien???

Muchas gracias por adelantado![/code]

Por txata-82

2 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Abr 2008 05:31 pm
Me parece que al momento de hacer el echo estas utilizando una coma para concatenar en lugar del punto. A lo mejor ese es el problema ^^

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 28 Abr 2008 06:24 pm
Hola txata-82, mi pregunta es: ¿En que momento le dices que recorra todo el contenido del XML? según lo veo, solo lo comparas con aparentemente el primer elemento, y por eso falla, ahora, tome un poco el código de tu php que es donde te fallaría y jugué un poco con él obteniendo este resultado

Código :

<?php
$vbl = "amigos.xml";
// Si es un archivo, lo cargo como tal, no como simple texto
$contenido = simplexml_load_file($vbl);

// tomo el valor de un elemento de tipo texto del formulario, no es necesario convertir a string de nuevo, 
// recuerda que las cajas de texto html ya de por si envian eso, texto (string)
$cadenatexto = $_POST["cadenatexto"];

// con el xml ya cargado, cuento la cantidad de hijos que tiene el primer hijo o firstChild
$amigos = count($contenido->amigo);

// con ese número, es más fácil hacer por ejemplo un for sencillo
for($x=0;$x<$amigos;$x++)
{
         // Y si mi cadena de texto es igual al nombre del $x amigo, pues... lo encontramos
   if($cadenatexto==$contenido->amigo[$x]->nombre)
      echo "<p>He encontrado a mi amigo ". $contenido->amigo[$x]->nombre . "</p>";
}
?>


Le puse algunos comentarios, para que te sirvan de ayuda. Un saludo

Por Aoyama

BOFH

6224 de clabLevel

6 tutoriales
12 articulos

Genero:Masculino   Anime Bloggers Bastard Operators From Hell

Webdesigner & Developer, en mis ratos libres bebo café por litros.

firefox
Citar            
MensajeEscrito el 29 Abr 2008 09:54 am
Muchas gracias por la rapidez.

Veo que controlas mucho de esto, no se si podrias ayudarme. Lo que quiero hacer es una galeria de imagenes externas mediante un xml, con un administrador para gestionarla.

No he encontrado gran documentación y estoy echa un lio..

Un saludo y muchas gracias de nuevo!

Por txata-82

2 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.