Foros del Web » Programación para mayores de 30 ;) » Programación General »

PHP funciones DOMXML

Estas en el tema de PHP funciones DOMXML en el foro de Programación General en Foros del Web. Buenas tardes, tengo un archivo xml del tipo: Código: <struct> <segment name="seg1"> <camp name="c1" length="10">Hola</camp> <camp name="c2" length="3">150</camp> ... </segment> <segment name="seg2"> <camp name="c7" length="10">Adios</camp> ...
  #1 (permalink)  
Antiguo 07/02/2007, 10:03
 
Fecha de Ingreso: enero-2007
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
PHP funciones DOMXML

Buenas tardes,
tengo un archivo xml del tipo:

Código:
<struct>
 <segment name="seg1">
  <camp name="c1" length="10">Hola</camp>
  <camp name="c2" length="3">150</camp>
  ...
 </segment>
 <segment name="seg2">
  <camp name="c7" length="10">Adios</camp>
  <camp name="c8" length="3">185</camp>
  ...
 </segment>
 ...
</struct>
Este xml lo cargo en un DOM usando php 4.3.

Mi pregunta és la siguiente, necessito una funció que me permita acceder a un nodo <segment> en función de su atributo "name". He encontrado la función get_elements_by_tagname('segment') pero entonces tengo que recorrerlos todos y con un if pararme en el que tengo el name que me interesa.

También vi la función get_element_by_id que pensaba que me funcionaria cambiando el atributo "name" por "id" pero me da un error ya que creo q tengo que especificar un DTD o alo por el estilo.

Si alguien me pudiera aclarar un poco el tema le estaria agradecido.
Gracias.
  #2 (permalink)  
Antiguo 07/02/2007, 10:11
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: PHP funciones DOMXML

Para usar el getElementByID tienes que tener un ID en el tag, además del name, metele el atributo tag, funcionan bien juntos...

Espero que te sirva

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 07/02/2007, 10:24
 
Fecha de Ingreso: enero-2007
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: PHP funciones DOMXML

No se si entiendo bien lo que me comentas, por ejemplo si pongo:
Código:
<struct>
 <segment name="seg1" tag="seg1">
  <camp name="c1" length="10">Hola</camp>
  <camp name="c2" length="3">150</camp>
  ...
 </segment>
 <segment name="seg2" tag="seg2">
  <camp name="c7" length="10">Adios</camp>
  <camp name="c8" length="3">185</camp>
  ...
 </segment>
 ...
</struct>
Haciendo un get_element_by_id('seg2') me tendria que retornar el nodo? Correcto?

Muchas gracias lo estoy probando, aunque debo tener algun otro error por ahi.
  #4 (permalink)  
Antiguo 07/02/2007, 14:10
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: PHP funciones DOMXML

No, debes colocarlo así

<segment name="seg2" tag="seg2" id="tag2">

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 07/02/2007, 18:55
 
Fecha de Ingreso: octubre-2004
Ubicación: Cork (Irlanda)
Mensajes: 161
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: PHP funciones DOMXML

Creo que para recuperar nodos de un DOM en PHP hay que usar la clase DOMXPath... no te doy más detalles porque yo apenas conozco sobre esto...

Suerte!
  #6 (permalink)  
Antiguo 08/02/2007, 03:40
 
Fecha de Ingreso: enero-2007
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: PHP funciones DOMXML

La verdad es que pongo

Código:
<segment name="seg2" tag="seg2" id="tag2">
y supongo que se accederia con get_element_by_id('tag2') pero sigue sin funcionar :(

En referencia al xpath estoy intentando abrir el xml con:

Código:
$doc = new DOMDocument;
$doc->load("archivo.xml");
pero el script peta al poner la funcion load sin recorrer ninguna linea más.
Estoy utilizando php 4.3.7
Debo habilitar alguna extension en el php.ini?
Estan soportadas estas funciones para mi version de php?

Al cargar el xml con domxml_open_file ningun problema pero me es impossible hacerlo con el load para utilizar despúes el domxpath que me comentan.

Muchas gracias monoswim y masterjail por vuestra ayuda.
  #7 (permalink)  
Antiguo 08/02/2007, 06:10
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: PHP funciones DOMXML

Checkea este post...

http://www.forosdelweb.com/f14/fichero-configuracion-con-xml-463119/

Saludos
__________________
Esteban Quintana
  #8 (permalink)  
Antiguo 08/02/2007, 07:20
 
Fecha de Ingreso: enero-2007
Mensajes: 21
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: PHP funciones DOMXML

El problema no es utilizar-lo sino que al hacer

$dom = DOMDocument::load('config.xml');

peta el script como si me faltara algun include o si php 4.3.7 no tubiera esta funcionalidad.
  #9 (permalink)  
Antiguo 08/02/2007, 09:46
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 2 meses
Puntos: 90
Re: PHP funciones DOMXML

Deberías de preguntar en el foro de PHP...
__________________
Esteban Quintana
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 21:46.