Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2012, 12:06
motorinapronto
 
Fecha de Ingreso: noviembre-2010
Mensajes: 101
Antigüedad: 14 años, 3 meses
Puntos: 0
Funcion insertar datos en xml con php

Hola.
Tengo la siguiente funcion para insertar datos a un XML con PHP:

Código PHP:
function insertar_nodo $nodo $datos $fichero $duplicar $duplicados ){  
  
//Leemos fichero       
 
if(( $xml leer_xml $fichero )) == - ) return - ;       
  
  
//Comprobamos si puede haber       nodos duplicados o no y si los hay       
 
if( $duplicar == $stop buscar_nodo $nodo $duplicados $fichero );       
 else 
$stop ;       
  
  
//Si no hay nodos duplicados o       si puede haberlos, seguimos       
 
if( $stop == ){       
 
//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 
;       

El problema es que si tengo un XML como el siguiente:

Código:
<?xml version='1.0' encoding='UTF-8'?>
<playlist version='1' xmlns='http://xspf.org/ns/0/'>
<trackList>
	<track>
		<location>mp3/you lie.mp3</location>
		<album></album>
		<title>1 - you lie</title>
		<downloads>0</downloads>
	</track>
	<track>
		<location>ve2</location>
		<album>bee</album>
		<title>2 - you lie 2</title>
		<downloads>0</downloads>
	</track>
</trackList>
</playlist>

Para insertar una entrada escribo esto:

Código PHP:
$datos[0]['tag'] = 'location'
$datos[0]['dato'] = $location
$datos[1]['tag'] = 'album'
$datos[1]['dato'] = $album
$datos[2]['tag'] = 'title'
$datos[2]['dato'] = $title
$datos[3]['tag'] = 'downloads'
$datos[3]['dato'] = $downloads;

$duplicados[0]['tag'] = 'location'
$duplicados[0]['dato'] = $location

insertar_nodo("track",$datos,"archivo.xml",1,$location); 
Mi problema es que lo que me inserta, me lo pone entre <playlist> </playlist>
pero no me lo mete dentro de <trackList> </trackList>.

Es decir, es como si al hacerlo funcionar, me diera como resultado lo siguiente:

Código:
<?xml version='1.0' encoding='UTF-8'?>
<playlist version='1' xmlns='http://xspf.org/ns/0/'>
<trackList></trackList>
	<track>
		<location>mp3/I love the way you lie.mp3</location>
		<album>filipines</album>
		<title>1 - I love the way you lie</title>
		<downloads>0</downloads>
	</track>
	<track>
		<location>rihannalove2</location>
		<album>bee</album>
		<title>2 - I love the way you lie 2</title>
		<downloads>0</downloads>
	</track>
</playlist>

Es un poco largo de leer, y creo que tiene facil solución.. pero no la veo.
¿A alguien se le ocurre algo?

de antemano, muchas gracias.