Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2003, 09:24
Avatar de Cain
Cain
 
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Ayuda leyendo XML desde PHP

He mirado el FAQ de epplestun sobre sacar textos de un XML usando PHP y he estado probando cosas.

El problema es que me he quedado encallado en algo que supongo que no es muy complejo.

La idea era redefinir el XML para que contuviera tanto los nombres como los contenidos de las variables, así:

english.xml:
Código:
<language>
    <cadena>
		<nom>un</nom>
		<contingut>one</contingut>
	</cadena>
    <cadena>
		<nom>dos</nom>
		<contingut>two</contingut>
	</cadena>
    <cadena>
		<nom>tres</nom>
		<contingut>three</contingut>
	</cadena>
</language>
A partir de esto, necesito lograr un array tal que así:

Cita:
Array ( [un] => one [dos] => two [tres] => three )
Pero no he logrado más que esto:

Cita:
Array ( [un] => un [one] => one [dos] => dos [two] => two [tres] => tres [three] => three )
El código que estoy usando, es:
Código PHP:
<?php
class lang {
    var 
$word  = array();
    
    function 
loadLanguage($lang "english.xml") {
        
$xml    implode(""file(dirname(__FILE__)."/".$lang));
        
$parser xml_parser_create();
        
xml_parser_set_option($parserXML_OPTION_CASE_FOLDING0);
        
xml_parser_set_option($parserXML_OPTION_SKIP_WHITE1);
        
xml_parse_into_struct($parser$xml$vals$tags);
        
xml_parser_free($parser);
        
$i 0;
        foreach(
$vals as $key => $value) {
            if(!empty(
$value['value'])) {
                
$this->word[$value['value']] = $value['value'];
                
$i++;
            }
        }
        return 
$this->word;
    }
    
    function 
viewInfo() {
        
$this->loadLanguage();
        return 
print_r($this->word);
    }
}
$lang   = new lang();
$lang -> viewInfo();
$labels =& $lang -> loadLanguage();
echo 
$labels['FILE'];
?>
La idea es poder sacar la cantidad y los nombres de las variables a partir del XML (sin tener que definirlos también en el PHP) y poderlas llamar con $labels[$nom];
__________________
M a l d i t o F r i k i

Última edición por Cain; 30/10/2003 a las 09:25