Bueno, me consuela ver que por lo menos hay lectores de este hilo... no escriben, pero leen :)
He optado por seguir usando el intérprete SAX y ahora cada etiqueta especial de la plantilla (como la que uso para recorrer arrays) se corresponde con una clase que se encarga de su trabajo sucio, así que ahora lo tengo bastante más fácil para extender el comportamiento de cada plantilla, porque sólo hay que implementar clases hijas de ésta:
Código PHP:
class AbstractTagHandler {
var $body;
function setBodyContent( $body ){ $this->body = $body; }
function process( &$model ){}
function addProperty( $key, $value ){}
}
El 'núcleo' de la aplicación ya no lo tengo q modificar, al menos, para extender las funcionaliades.
Cuando termine de poner en orden
la página del proyecto y se me resuelva el lío que tengo con la clave pública subiré el código al CVS público. Avisaré.