Foros del Web » Programando para Internet » PHP »

Novato intentando tratar xml

Estas en el tema de Novato intentando tratar xml en el foro de PHP en Foros del Web. Buenas noches a todos, vereis llevo poco tiempo en esto de editar codigo web y para facilitarme mi propio curro diario necesitaria poder importar un ...
  #1 (permalink)  
Antiguo 14/09/2011, 14:36
 
Fecha de Ingreso: septiembre-2011
Ubicación: Sant Marti de Centelles
Mensajes: 25
Antigüedad: 13 años, 3 meses
Puntos: 0
Novato intentando tratar xml

Buenas noches a todos, vereis llevo poco tiempo en esto de editar codigo web y para facilitarme mi propio curro diario necesitaria poder importar un xml a mysql, concretamente el archivo que exporta el programa EVEREST.
La cosa es que por mas que leo no acabo de entender bien como tratar los xml, aun asi planteo esta duda a ver si lo que he hecho debe hacer lo que creo que he entendido que deberia. (si es lioso )

foreach ($xml->group as $group)
if ($group->Item->Title="DMI Sockets de memoria Total / Libres")) {
mysql_query("INSERT INTO equipos (slots) VALUES ($group->Item->Value)");
}


En este trozo de codigo entiendo que buscara en el xml un title concreto y supuestamente cogera el value de ese title y lo pondra en la bbdd, es correcto o voy perdido?, pego tambien un extracto del xml para ver si me podeis aclarar sino como tratar el archivo.

<Group>
<Title>DMI</Title><Icon>46</Icon><Item><Title>DMI Fabricante del BIOS</Title><Icon>27</Icon><ID>548</ID><Value>American Megatrends Inc.</Value></Item>
<Item><Title>DMI Versión del BIOS</Title><Icon>27</Icon><ID>549</ID><Value>1201</Value></Item>
<Item><Title>DMI Fabricante del sistema</Title><Icon>46</Icon><ID>550</ID><Value>System manufacturer</Value></Item>
<Item><Title>DMI Nombre del sistema</Title><Icon>46</Icon><ID>551</ID><Value>Maximus Formula</Value></Item>
<Item><Title>DMI Versión del sistema</Title><Icon>46</Icon><ID>552</ID><Value>System Version</Value></Item>
<Item><Title>DMI Número de serie del sistema</Title><Icon>46</Icon><ID>553</ID><Value>System Serial Number</Value></Item>
<Item><Title>DMI UUID del sistema</Title><Icon>46</Icon><ID>554</ID><Value>804D001E-8C00001A-463A001E-8C73AA29</Value></Item>
<Item><Title>DMI Fabricante del motherboard</Title><Icon>42</Icon><ID>555</ID><Value>ASUSTeK Computer INC.</Value></Item>
<Item><Title>DMI Nombre del motherboard</Title><Icon>42</Icon><ID>556</ID><Value>Maximus Formula</Value></Item>
<Item><Title>DMI Versión del motherboard</Title><Icon>42</Icon><ID>557</ID><Value>Rev 1.xx</Value></Item>
<Item><Title>DMI Número de serie del motherboard</Title><Icon>42</Icon><ID>558</ID><Value>MS1C7CBA1S00540</Value></Item>
<Item><Title>DMI Fabricante del chasis</Title><Icon>51</Icon><ID>559</ID><Value>Chassis Manufacture</Value></Item>
<Item><Title>DMI Versión del chasis</Title><Icon>51</Icon><ID>560</ID><Value>Chassis Version</Value></Item>
<Item><Title>DMI Número de serie del chasis</Title><Icon>51</Icon><ID>561</ID><Value>Chassis Serial Number</Value></Item>
<Item><Title>DMI Identificador del chasis</Title><Icon>51</Icon><ID>562</ID><Value>Asset-1234567890</Value></Item>
<Item><Title>DMI Tipo de chasis</Title><Icon>51</Icon><ID>563</ID><Value>Desktop Case</Value></Item>
<Item><Title>DMI Sockets de memoria Total / Libres</Title><Icon>50</Icon><ID>570</ID><Value>4 / 0</Value></Item>
</Group>
  #2 (permalink)  
Antiguo 14/09/2011, 14:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: Novato intentando tratar xml

Con esa cantidad de código hay que andar adivinando que estás usando para parsear el xml...

$xml->group creo que debería ser $xml->Group, de todas formas la única forma de saber si funciona es hacer algo mágico...probarlo :D
  #3 (permalink)  
Antiguo 14/09/2011, 14:40
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Novato intentando tratar xml

Si te funciona vas bien, cuál es tu duda? lo probaste?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #4 (permalink)  
Antiguo 14/09/2011, 14:43
 
Fecha de Ingreso: septiembre-2011
Ubicación: Sant Marti de Centelles
Mensajes: 25
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato intentando tratar xml

Simplemente he puesto una parte del XML, 1 de los group que tiene dentro, lo que me interesa saber (aparte de tu apunte sobre Group que es correcto), es si ese pequeño trozo de código que he puesto hace lo que creo (ahora mismo no tengo manera en el equipo de probarlo, por eso quería opiniones).
Sobre que uso, estoy intentando usar simplexml ya que me han dicho que es el mas facil para esto.
  #5 (permalink)  
Antiguo 14/09/2011, 14:46
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 14 años
Puntos: 51
Respuesta: Novato intentando tratar xml

Acá

Código PHP:
Ver original
  1. mysql_query("INSERT INTO equipos (slots) VALUES ($group->Item->Value)");

faltan comillas:

Código PHP:
Ver original
  1. mysql_query("INSERT INTO equipos (slots) VALUES ('{$group->Item->Value}')");
  #6 (permalink)  
Antiguo 14/09/2011, 14:49
 
Fecha de Ingreso: septiembre-2011
Ubicación: Sant Marti de Centelles
Mensajes: 25
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato intentando tratar xml

ahora lo modificare, solo me falta saber si recorre correctamente el xml.

Gracias otra vez por el apunte walterdevel.
Entonces debo entender que entre el foreach y el if buscando un dato concreto obtendra el valor que quiero en este caso "4 / 0" del title "DMI Sockets de memoria Total / Libres" cierto?
  #7 (permalink)  
Antiguo 14/09/2011, 14:51
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 5 meses
Puntos: 793
Respuesta: Novato intentando tratar xml

Sacar esos datos del XML no es nada complicado, te recomiendo leer este aporte para que te vayas guiando y veas otras alternativas:

[APORTE] Leer XML con SimpleXML y DOM
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #8 (permalink)  
Antiguo 14/09/2011, 15:01
 
Fecha de Ingreso: septiembre-2011
Ubicación: Sant Marti de Centelles
Mensajes: 25
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Novato intentando tratar xml

Cita:
Iniciado por andresdzphp Ver Mensaje
Sacar esos datos del XML no es nada complicado, te recomiendo leer este aporte para que te vayas guiando y veas otras alternativas:

[URL="http://www.forosdelweb.com/f18/aporte-leer-xml-con-simplexml-dom-792348/"][APORTE] Leer XML con SimpleXML y DOM[/URL]
Lo he mirado pero me quedo igual, no consigo imaginarme el xml del que quieren extraer datos y sin poder compararlo me pierdo, por eso queria saber si el codigo que habia puesto en vuestra opinion deberia hacer lo que creo que debe hacer, solo eso.

Etiquetas: mysql, xml, trazar
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 00:53.