Foros del Web » Programación para mayores de 30 ;) » Programación General »

Fichero de configuración con XML...

Estas en el tema de Fichero de configuración con XML... en el foro de Programación General en Foros del Web. Hola que tal? Para introducir el mensaje diré que esto va sobre XML y PHP ... así que si en lugar de postearlo aquí lo ...
  #1 (permalink)  
Antiguo 07/02/2007, 20:26
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Fichero de configuración con XML...

Hola que tal?

Para introducir el mensaje diré que esto va sobre XML y PHP... así que si en lugar de postearlo aquí lo debía haber hecho en el foro de PHP... lo siento

Os comento mi duda:

Hasta ahora siempre que he querido configurar los parámetros de acceso a una base de datos (usuario, contraseña ...) lo he hecho dentro de algun script en PHP, de manera que de algun modo u otro cuando los necesitaba los recuperaba fácilmente...

Pero hoy me ha apetecido hacerlo (porque creo que es mejor que como lo hacía) en un fichero XML config.xml como éste:

Código HTML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<dbconfig>
  <dbms>mysql</dbms>
  <host>localhost</host>
  <username>root</username>
  <password>mysql4root</password>
  <database>club</database>
</dbconfig> 
Para recuperar los valores de los parámetros hago lo siguiente en PHP:

Código PHP:
$dom DOMDocument::load('config.xml');
$xpath = new DOMXPath($dom);
$dbms $xpath->query('/dbconfig/dbms')->item(0)->nodeValue;
$host $xpath->query('/dbconfig/host')->item(0)->nodeValue;
$username $xpath->query('/dbconfig/username')->item(0)->nodeValue;
$password $xpath->query('/dbconfig/password')->item(0)->nodeValue;
$database $xpath->query('/dbconfig/database')->item(0)->nodeValue
y a partir de ahí establezco la conexión.

Tambien me he dado cuenta de que puedo hacerlo así:

Código PHP:
$dom DOMDocument::load('adodb.config.xml');
$dbms $config->getElementsByTagName('dbms')->item(0)->nodeValue;
$host $config->getElementsByTagName('host')->item(0)->nodeValue;
$username $config->getElementsByTagName('username')->item(0)->nodeValue;
$password $config->getElementsByTagName('password')->item(0)->nodeValue;
$database $config->getElementsByTagName('database')->item(0)->nodeValue
No acaba de convencerme mucho la forma en que lo hago y estoy convencido de que existe algun método más elegante para recuperar el valor del texto de los nodos...

Si alguien sabe como y le apetece escribir... le estaré bastante agradecido...

Muchas gracias por anticipado.
  #2 (permalink)  
Antiguo 08/02/2007, 04:09
 
Fecha de Ingreso: enero-2007
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Fichero de configuración con XML...

Con lo poco que se te diré la forma como lo haria yo:
Código:
$tagnames = array ("dbms","host",...);

$docu= domxml_open_file("archivo.xml");
$raiz = $docu->document_element();

for($i=0; $i<sizeof($tagnames); $i++){
     $nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
     $config[$tagnames[$i]]=$nodo->get_content();
}
Es otra forma de hacerlo sobre todo en caso de que en algun momento se tengan q añadir tags al fichero xml (que no creo q sea tu caso). Mis conocimientos de xml no son muy altos seguro q hay formas mejores pero creo q funcionaria asi tambien.

Saludos
  #3 (permalink)  
Antiguo 21/03/2007, 17:34
 
Fecha de Ingreso: junio-2006
Ubicación: Lima, mi trabajo
Mensajes: 100
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Fichero de configuración con XML...

en los ejemplos que he visto hacen referencia al array de tags, pero y si quiero que recorra el archivo o el objeto dom dinamicamente?? como seria?
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 15:35.