Foros del Web » Programando para Internet » PHP »

Problemas al parsear un documento XML

Estas en el tema de Problemas al parsear un documento XML en el foro de PHP en Foros del Web. Hola, estoy haciendo una script para leer un archivo XML con DOMXML, y mostrarlo en la web. Lo lee y muestra todas las etiquetas y ...
  #1 (permalink)  
Antiguo 26/09/2005, 05:54
 
Fecha de Ingreso: diciembre-2004
Ubicación: Huercal-overa
Mensajes: 4
Antigüedad: 19 años, 4 meses
Puntos: 0
Problemas al parsear un documento XML

Hola, estoy haciendo una script para leer un archivo XML con DOMXML, y mostrarlo en la web. Lo lee y muestra todas las etiquetas y atributos que se necesito correctamente. El problemas es al mostrar los datos leídos, que los acentos y 'ñ' no es capaz de interpretarlos bien, y los muestra mal, los cambia por otros caracteres.

Les pongo el código que utilizo para leer el xml.

$xmlPath = dirname(__FILE__) . "/";
if (!$dom = domxml_open_file($xmlPath . "/archivo.xml")) {
echo "Error al parsear el documento XML.....";
exit;
}
else {
$root = $dom->document_element();
$variables = $root->get_elements_by_tagname("name");
$iconos = $root->get_elements_by_tagname("icon");
$prediccion = $root->get_elements_by_tagname("forecast");
$localidad = $root->get_elements_by_tagname("location");

$i = 0;
foreach ($localidad as $localidad) {
$i = $i + 1;
$atrs = $localidad->attributes();
foreach ($atrs as $atributos2) {
$localidades = $atributos2->value;}
}

$i = 0;
$variable = 1;
foreach ($prediccion as $prediccion) {
if ($dias_predicciones == $i) {
$i = 0;
$variable = $variable + 1;
}
$i = $i + 1;
$atrs = $prediccion->attributes();
foreach ($atrs as $atributos) {
$atributo = $atributos->name;
$valor = $atributos->value;

if ($atributo == "value"){
if ($variable == 1) {
$var1 = $var1 + array($i=>$valor);
}
if ($variable == 2) {
$var2 = $var2 + array($i=>$valor);
}
if ($variable == 3) {
$var3 = $var3 + array($i=>$valor);
}
if ($variable == 4) {
$var4 = $var4 + array($i=>$valor);
}
if ($variable == 5) {
$var5 = $var5 + array($i=>$valor);
}
if ($variable == 6) {
$var6 = $var6 + array($i=>$valor);
}
if ($variable == 7) {
$var7 = $var7 + array($i=>$valor);
}
if ($variable == 8) {
$var8 = $var8 + array($i=>$valor);
}
if ($variable == 9) {
$var9 = $var9 + array($i=>$valor);
}
if ($variable == 10) {
$var10 = $var10 + array($i=>$valor);
}
if ($variable == 11) {
$var11 = $var11 + array($i=>$valor);
}
if ($variable == 12) {
$var12 = $var12 + array($i=>$valor);
}
if ($variable == 13) {
$var13 = $var13 + array($i=>$valor);
}
if ($variable == 14) {
$var14 = $var14 + array($i=>$valor);
}
if ($variable == 15) {
$var15 = $var15 + array($i=>$valor);
}
if ($variable == 16) {
$var16 = $var16 + array($i=>$valor);
}
if ($variable == 17) {
$var17 = $var17 + array($i=>$valor);
}
if ($variable == 18) {
$var18 = $var18 + array($i=>$valor);
}
if ($variable == 19) {
$var19 = $var19 + array($i=>$valor);
}
if ($variable == 20) {
$var20 = $var20 + array($i=>$valor);
}
}
}
}
}




Es decir, sólo utilizo las funciones:

- domxml_open_file() : para abrir el archivo XML
- get_elements_by_tagname() : para indicar el nombre de los nodos que quiero leer
- count() : para contar el nº de nodos iguales
- get_content() : para leer el dato de un nodo

Estoy utilizando php 4.3.10 y con apache 2.53
Bueno, espero puedan ayudarme.
Saludos y gracias.
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 19:17.