Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/05/2014, 17:51
Avatar de giancarloffi
giancarloffi
 
Fecha de Ingreso: julio-2013
Mensajes: 63
Antigüedad: 10 años, 9 meses
Puntos: 0
importar de XML a Mysql

hola, aqui nuevamente pidiendo ayuda esta ves sobre insertar dastos de un xml a una table de mi base de datos, he logrado incrustar algunos datos pero tengo dificultades en los nodos este es parte del xml :

Código XML:
Ver original
  1. -<Measurements>
  2.  
  3. -<MeasurementData>
  4. <Conduction>0</Conduction>
  5. <Masking>0</Masking>
  6. <NumOfThresholdsRightE>8</NumOfThresholdsRightE>
  7. <RightE Freq="250">25</RightE>
  8. <RightE Freq="500">20</RightE>
  9. <RightE Freq="1000">20</RightE>
  10. <RightE Freq="2000">25</RightE>
  11. <RightE Freq="3000">25</RightE>
  12. <RightE Freq="4000">35</RightE>
  13. <RightE Freq="6000">30</RightE>
  14. <RightE Freq="8000">25</RightE>
  15. <NumOfThresholdsLeftE>8</NumOfThresholdsLeftE>
  16. <LeftE Freq="250">25</LeftE>
  17. <LeftE Freq="500">20</LeftE>
  18. <LeftE Freq="1000">15</LeftE>
  19. <LeftE Freq="2000">10</LeftE>
  20. <LeftE Freq="3000">25</LeftE>
  21. <LeftE Freq="4000">35</LeftE>
  22. <LeftE Freq="6000">25</LeftE>
  23. <LeftE Freq="8000">25</LeftE>
  24. </MeasurementData>
  25.  
  26. -<MeasurementData>
  27. <Conduction>1</Conduction>
  28. <Masking>0</Masking>
  29. <NumOfThresholdsRightE>2</NumOfThresholdsRightE>
  30. <RightE Freq="4000">35</RightE>
  31. <RightE Freq="6000">30</RightE>
  32. <NumOfThresholdsLeftE>1</NumOfThresholdsLeftE>
  33. <LeftE Freq="4000">30</LeftE>
  34. </MeasurementData>
  35. </Measurements>

y esta la parte de la inserción:

Código PHP:
Ver original
  1. if ($xmlAudiometria = @simplexml_load_file($destino)) {
  2.  
  3.  $objAudiometriaAerea= $xmlAudiometria->Tests->Test->Measurements->MeasurementData;
  4.  
  5.                     foreach ($objAudiometriaAerea as $objAudiometria) {
  6.                         $ad250 = $objAudiometria->RightE[0];
  7.                         $ad500 = $objAudiometria->RightE[1];
  8.                         $ad1000 = $objAudiometria->RightE[2];
  9.                         $ad2000 = $objAudiometria->RightE[3];
  10.                         $ad3000 = $objAudiometria->RightE[4];
  11.                         $ad4000 = $objAudiometria->RightE[5];
  12.                         $ad6000 = $objAudiometria->RightE[6];
  13.                         $ad8000 = $objAudiometria->RightE[7];
  14.                        
  15.                         $ai250 = $objAudiometria->LeftE[0];
  16.                         $ai500 = $objAudiometria->LeftE[1];
  17.                         $ai1000 = $objAudiometria->LeftE[2];
  18.                         $ai2000 = $objAudiometria->LeftE[3];
  19.                         $ai3000 = $objAudiometria->LeftE[4];
  20.                         $ai4000 = $objAudiometria->LeftE[5];
  21.                         $ai6000 = $objAudiometria->LeftE[6];
  22.                         $ai8000 = $objAudiometria->LeftE[7];
  23.  
  24.                         $this->_audio->insertXml(
  25.                         $this->getPostParam('id_atencion'),
  26.                         $ad250,
  27.                         $ad500,
  28.                         $ad1000,
  29.                         $ad2000,
  30.                         $ad3000,
  31.                         $ad4000,
  32.                         $ad6000,
  33.                         $ad8000,
  34.                         $ai250,
  35.                         $ai500,
  36.                         $ai1000,
  37.                         $ai2000,
  38.                         $ai3000,
  39.                         $ai4000,
  40.                         $ai6000,
  41.                         $ai8000
  42.                         );

El problema radica en que ahí existen 2 nodos "MeasurementData" el primero que logre insertarlo correctamente pero como ingreso el siguiente MeasurementData y en sus respectivos campos digamos el 2do MeasurementData tiene solo 2 datos es variable hasta 8 datos que es el limite como en el primer MeasurementData osea <RightE Freq="4000"> en su campo 4000 pero con el dato 35, nose si me deje entender jejejeje bueno ese es mi gran problema la inserción alguien que me pueda ayudar se lo agradecería.