FAQ
Estoy diseñando un php que se encarga de leer un xml que se genera en un servidor externo de un proveedor , este php tiene que leer los campos y almacenarlos  en una base de datos, el problema esta que no puedo leer los campos "suc" y "prov", si puedo leer los campos "vta" y "time", la verdad no se mucho de XML, pero me gustaria poder corregir este problema...



Alguien me puede ayudar con este problema?



Adjunto el codigo php que lee el archivo.



- <vtasuc>
- <dsuc suc="001" prov="A001">
<vta>1211.36</vta>
<time>2008-09-03T23:00:22</time>
</dsuc>
- <dsuc suc="050" prov="A033">
<vta>-11.88</vta>
<time>2008-09-03T23:01:01</time>
</dsuc>
</vtasuc>







PHP-------------------------



<?
include ("domxml-php4-to-php5.php");

$ruta_fichero="archivo.xml";
$contenido = "";

if($da = fopen($ruta_fichero,"r"))
{
while ($aux= fgets($da,1024))
{
$contenido.=$aux;
}
fclose($da);
}
else
{
echo "Error: no se ha podido leer el archivo <strong>$ruta_fichero</strong>";
exit(1);
}

$tagnames = array ("suc","prov","vta","time");
$matriz = array();

if (!$xml = domxml_open_mem($contenido))
{
echo "Ha ocurrido un error al procesar el documento<strong> \"$ruta_fichero\"</strong> a XML <br>";
exit;
}
else
{
$raiz = $xml->document_element();
$tam=sizeof($tagnames);

for($i=0; $i<$tam; $i++)
{
$nodo = $raiz->get_elements_by_tagname($tagnames[$i]);
$j=0;
foreach ($nodo as $etiqueta)
{
$matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
$j++;
}
}
}

$j=0;
$num_noticias=sizeof($matriz);
for($i=0;$i<$num_noticias;$i++)
{
echo '<table border=1>';
for ($j=0; $j<=$tam; $j++)
{
echo '<tr><td align=center>'.$matriz[$i][$tagnames[$j]].'</td></tr>';
}
$j=0;
echo '</table><br>';
}
?>




Muchas gracias a todos!

--
Ezequiel Suarez

Search Discussions

  • Mauricio Cuenca at Jul 8, 2009 at 12:54 pm
    Has probado aplicando el método get_attribute() al nodo?


    2009/7/8 Ezequiel Suarez <esuarez@laanonima.com.ar>

    Estoy diseñando un php que se encarga de leer un xml que se genera en un
    servidor externo de un proveedor , este php tiene que leer los campos
    y almacenarlos en una base de datos, el problema esta que no puedo leer los
    campos "suc" y "prov", si puedo leer los campos "vta" y "time", la verdad no
    se mucho de XML, pero me gustaria poder corregir este problema...



    Alguien me puede ayudar con este problema?



    Adjunto el codigo php que lee el archivo.



    - <vtasuc>
    - <dsuc suc="001" prov="A001">
    <vta>1211.36</vta>
    <time>2008-09-03T23:00:22</time>
    </dsuc>
    - <dsuc suc="050" prov="A033">
    <vta>-11.88</vta>
    <time>2008-09-03T23:01:01</time>
    </dsuc>
    </vtasuc>







    PHP-------------------------



    <?
    include ("domxml-php4-to-php5.php");

    $ruta_fichero="archivo.xml";
    $contenido = "";

    if($da = fopen($ruta_fichero,"r"))
    {
    while ($aux= fgets($da,1024))
    {
    $contenido.=$aux;
    }
    fclose($da);
    }
    else
    {
    echo "Error: no se ha podido leer el archivo
    <strong>$ruta_fichero</strong>";
    exit(1);
    }

    $tagnames = array ("suc","prov","vta","time");
    $matriz = array();

    if (!$xml = domxml_open_mem($contenido))
    {
    echo "Ha ocurrido un error al procesar el documento<strong>
    \"$ruta_fichero\"</strong> a XML <br>";
    exit;
    }
    else
    {
    $raiz = $xml->document_element();
    $tam=sizeof($tagnames);

    for($i=0; $i<$tam; $i++)
    {
    $nodo =
    $raiz->get_elements_by_tagname($tagnames[$i]);
    $j=0;
    foreach ($nodo as $etiqueta)
    {

    $matriz[$j][$tagnames[$i]]=$etiqueta->get_content();
    $j++;
    }
    }
    }

    $j=0;
    $num_noticias=sizeof($matriz);
    for($i=0;$i<$num_noticias;$i++)
    {
    echo '<table border=1>';
    for ($j=0; $j<=$tam; $j++)
    {
    echo '<tr><td
    align=center>'.$matriz[$i][$tagnames[$j]].'</td></tr>';
    }
    $j=0;
    echo '</table><br>';
    }
    ?>




    Muchas gracias a todos!

    --
    Ezequiel Suarez


    --
    ________________________
    Mauricio Cuenca

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedJul 8, '09 at 12:46p
activeJul 8, '09 at 12:54p
posts2
users2
websitephp.net

People

Translate

site design / logo © 2022 Grokbase