El análisis de XML necesita ayuda en PHP

Tengo trabajo a domicilio para analizar XML Este es el xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
 <array>
  <dict>
   <key>code</key>
   <string>27</string>
   <key>programname</key>
   <string>Anında İstek Hattı</string>
   <key>programmername</key>
   <string>Selma Akbaş</string>
   <key>avatar</key>
   <string>selma-akbas-11.jpg</string>
  </dict>
  <dict>
   <key>code</key>
   <string>16</string>
   <key>programname</key>
   <string>Beyaz Gece</string>
   <key>programmername</key>
   <string>Okan Karakoca</string>
   <key>avatar</key>   
   <string>okan-karakoca-7.jpg</string>
  </dict>
 </array>
</plist>

Intento analizar con este código:

<?php
Header('charset=utf-8');
  $test = simplexml_load_file('programlar.xml');
    foreach ($test->array as $ar) {
      foreach ($ar->dict as $dict) {
        echo($dict->key);
        echo "<br/>";
        echo($dict->string);
        echo "<br/>";
      }
    }
?>

El análisis está hecho, pero obtiene algunos errores. Solo muestra la primera cadena de claves para cada dictado

¿Alguien puede arreglar este código? Gracias

preguntado el 09 de enero de 11 a las 00:01

el formato xml no está claro, sin embargo, consulte xml_parse_into_struct, es más o menos de una sola línea, vea ejemplos en php.net -

¿Qué errores obtienes? No espero que nadie adivine o intente sin tu ayuda. -

Creo que el problema que tienes es que 'cadena' es una palabra clave php. -

el problema es que hay varios pares de clave / cadena en cada dictado, pero el código solo hace un eco por dictado. -

1 Respuestas

<?php
Header('charset=utf-8');
$test = simplexml_load_file('programlar.xml');
foreach ($test->array as $ar) {
    foreach ($ar->dict as $dict) {
        for ($i = 0; $i < count($dict->key); $i++) {
            echo $dict->key[$i].'<br />';
            echo $dict->string[$i].'<br />';

    }
}
?>

Creo que esto debería funcionar. Asegúrate de entender lo que está pasando aquí antes de convertirlo en jaja. Estoy iterando a través de los pares de "clave" y "cadena" usando claves de índice de estilo de matriz, básicamente tratando los dos conjuntos de nodos como matrices.

Respondido el 09 de enero de 11 a las 04:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.