Foros del Web » Programando para Internet » PHP »

Ayuda para parsear un xml y poner los datos en mysql

Estas en el tema de Ayuda para parsear un xml y poner los datos en mysql en el foro de PHP en Foros del Web. Hola como estan! Pude conseguir este script y tengo alredor de tres días tratando de hacerlo funcionar para lo que necesito pero llego hasta el ...
  #1 (permalink)  
Antiguo 28/01/2005, 08:45
Avatar de ancubero  
Fecha de Ingreso: octubre-2003
Ubicación: San Jose Costa Rica
Mensajes: 54
Antigüedad: 14 años, 1 mes
Puntos: 0
Ayuda para parsear un xml y poner los datos en mysql

Hola como estan!

Pude conseguir este script y tengo alredor de tres días tratando de hacerlo funcionar para lo que necesito pero llego hasta el punto de solo desplegar y nose como hacer o donde poner el query para que me ponga la info del XML en mysql.

este es el XML
Código:
 
<?xml version="1.0"?>
<moldb>
  <type>hydrophobic
    <molecule>
        <name>Alanine</name>
        <symbol>ala</symbol>
        <code>A</code>
    </molecule>
  </type>
   <type>charged
    <molecule>
        <name>Lysine</name>
        <symbol>lys</symbol>
        <code>K</code>   
    </molecule>
   </type>
</moldb>
y este el el codigo del PHP
Código PHP:
<?php

class AminoAcid {
   var 
$type;  // hydrophobic, charged or neutral
   
var $name;  // aa name
   
var $symbol;    // three letter symbol
   
var $code;  // one letter code
   
   
function AminoAcid ($aa
   {
       foreach (
$aa as $k=>$v)
           
$this->$k $aa[$k];
   }
}

function 
readDatabase($filename
{
   
// read the XML database of aminoacids
   
$data implode(""file($filename));
   
$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$data$values$tags);
   
xml_parser_free($parser);

   
// loop through the structures
   
foreach ($tags as $key=>$val) {
       if (
$key == "molecule") {
           
$molranges $val;
           
// each contiguous pair of array entries are the 
           // lower and upper range for each molecule definition
           
for ($i=0$i count($molranges); $i+=2) {
                   
$offset $molranges[$i] + 1;
               
$len $molranges[$i 1] - $offset;
               
$tdb[] = parseMol(array_slice($values$offset$len));
           }
       } else {
           continue;
       }
   }
   return 
$tdb;
}

function 
parseMol($mvalues
{
   for (
$i=0$i count($mvalues); $i++) {
      
$mol[$mvalues[$i]["tag"]] = $mvalues[$i]["value"]."<br>";
   }
   return new 
AminoAcid($mol);
}

$db readDatabase("moldb.xml");
//echo "** Database of AminoAcid objects:\n";
print_r($db);
?>
y esto es lo que me muestra

[CODE]Array ( [0] => AminoAcid Object ( [type] => [name] => Alanine
[symbol] => ala
[code] => A
) [1] => AminoAcid Object ( [type] => [name] => Lysine
[symbol] => lys
Código:
 => K
) )
como pueden ver "type" esta fuera de molecule y no me toma el valor.

y hasta ahi llego nose que mas hacer la verdad lo que necesito es como hacer que cada valor sea una variable y asi poder meter esa varia en la DB creo que es asi pero la verdad debo estar muy equivocado si alguien me puede iliminar o mostrar el camino se lo agradeceria sobre manera.

Muchas 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 12:34.