$processor
$processor : \ODFXSLTProcessor
Extensiones a la clase ODFXSLTProcessor.
$processor : \ODFXSLTProcessor
__construct(\ODFXSLTProcessor $processor)
\ODFXSLTProcessor | $processor |
si $processor no es una instancia de ODFXSLTProcessor
getProcessor() : \ODFXSLTProcessor
Retorna el procesador asociado a este objeto.
appendXsltFragment(string $code)
Agrega un fragmento de código XSLT a la plantilla que procesa las entradas ODF, como hijo del elemento raíz xslt:stylesheet.
Puede contener uno o más elementos que sean válidos en ese contexto. Este código queda disponible para usar en los bloques de código XSLT dentro de los ODF.
Importante: Los elementos XSLT deben usar el namespace xslt, que ya está definido. Si el código dado usa otros namespaces, se deben definir en el/los elemento/s raíz del fragmento.
Ejemplo: template
$code = <<<C <xslt:template xmlns:text="{$processor->xmlns['text']}" name="ejemplo"> <xslt:param name="h" select="."/> <text:h text:outline-level="2"><xslt:value-of select="$h"></text:h> <!-- resto del codigo --> </xslt:template> C;
Ahora se puede usar este template dentro de una plantilla ODF; por ejemplo:
{@replace . <xslt:call-template name="ejemplo"> <xslt:with-param name="src" select='e1/e2/@a'/> </xslt:call-template> }
string | $code | el código del template; debe ser uno o más elementos XSLT válidos |
addPredefinedTemplates()
Agrega templates XSLT predefinidos, para que queden disponibles en los bloques de código XSLT dentro de los ODF.
Por el momento sólo hay uno:
<xslt:template name="eol-to-line-break"> <xslt:param name="src" select="."/> </xslt:template>
Este template emite el valor del parámetro $src, convirtiendo los fines de línea (LF | CR+LF) a saltos de línea ODF (text:line-break).
loadXmlErrorHandler(integer $errno, string $errstr, $errfile, $errline)
Error handler.
Es necesario porque la carga de XML (DOMDocument::loadXML() y DOMDocumentFragment::appendXML()) emite warnings cuando el XML está mal formado.
No invocar. Es público porque así lo requiere PHP para poder usarlo.
integer | $errno | |
string | $errstr | |
$errfile | ||
$errline |
appendXmlFragmentImpl(\DOMDocument $dom, \ODFXSLTProcessor $processor, string $code)
Callback para {@link XgapODFXSLTProcessorExt::registerDomPreprocessor()}.
No invocar. Es público porque así lo requiere PHP para poder usarlo.
\DOMDocument | $dom | |
\ODFXSLTProcessor | $processor | |
string | $code |
si el fragmento no se puede agregar
registerDomPreprocessor(callback $callback, mixed $user_data = null)
Registra con el procesador ODFXSLTProcessor un preprocesador que opera sobre el DOM.
Este preprocesador recibe el DOM de la plantilla a procesar, a diferencia de los que se registran directamente con ODFXSLTProcessor, los cuales reciben el texto XML.
Todos los preprocesadores registrados en una instancia de esta clase a través de este método trabajan con el mismo objeto DOM por cada archivo de la plantilla ODF, por lo cual la conversión de texto XML a DOM se realiza una sola vez por archivo, evitando rehacer este paso cuando se regitran varios preprocesadores.
callback | $callback | la función o método a invocar; debe tener la forma: void function (DOMDocument $dom, ODFXSLTProcessor $processor, $user_data); debe operar sobre $dom; cualquier valor de retorno es ignorado |
mixed | $user_data | una variable arbitraria para pasar al callback cuando se invoque |
si $callback no es invocable
domPreprocessorImpl(string $raw_xml, \ODFXSLTProcessor $processor, $user_data) : string
Callback para {@link ODFXSLTProcessor::register_preprocessor()}.
No invocar. Es público porque así lo requiere PHP para poder usarlo.
string | $raw_xml | |
\ODFXSLTProcessor | $processor | |
$user_data |