Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/05/2004, 03:14
Avatar de vitxo
vitxo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Valencia
Mensajes: 219
Antigüedad: 20 años, 7 meses
Puntos: 0
Si no recuerdo mal, el formato del documento de openoffice es XML y comprimido con el algoritmo ZIP. Deberían estudiar los DTDs (Document Type Descriptors) que contienen las reglas y definición de etiquetas que luego se usa en el .SWX.
Para interpretar archivos XML en PHP4 hay varias alternativas, las más inmediatas consisten bien en usar un intérprete SAX (Simple API por XML) o DOM (Document Object Model).

SAX es un intérprete secuencial que realiza una llamada a una serie de métodos cada vez que:
1. el intérprete llega a una etiqueta de apertura.
2. el intérprete recorre los caracteres que forman el cuerpo
3. el intérprete llega a una etiqueta de cierre.
En este caso, es interesante mantener una pila con la profundidad del árbol representativo.

Hablando de árboles, DOM construye un árbol de objetos de tipo nodo. Cada nodo tiene una serie de atributos o propiedades inherentes al XML que se esté interpretanto. Es comodísimo de utilizar, además que está de moda y es un estándar implementado en multitud de lenguajes, como SAX, pero en las versiones 4 de PHP está marcado como módulo experimental :S. Aquí hay que tener especial cuidado con el tamaño que puede llegar a tomar el árbol DOM en memoria, no vayas a interpretar un archivo de tropocientosmil megabytes :)
En PHP5 todo esto se ve mejorado sustancialmente.

Enlaces para empezar:
http://es2.php.net/manual/es/ref.domxml.php
http://es2.php.net/manual/es/ref.simplexml.php

Que por cierto, dónde demonios está la documentación de PHP4?? :O

Yo he experimentado con SAX para implementar un intérprete de xHTML, no hay mucha documentación, pero igual les inspira mi TemplateParser:
http://cvs.sourceforge.net/viewcvs.p...Fplain&rev=1.5
Documentación sobre "phpmarker", por llamarlo de alguna manera:
http://people.javahispano.org/vitxo/...oper.howto.pdf
http://weblogs.javahispano.org/comme...as_de_un_motor
http://www.forosdelweb.com/f68/estrategias-para-implementar-motor-plantillas-152244/
Todo eso más lo que te diga San Google. :)

Última edición por vitxo; 28/05/2004 a las 03:29