3 * Créer un article à partir d'un fichier au format odt
14 if (!defined("_ECRIRE_INC_VERSION")) return;
17 * appliquer la transformation XSLT spécifique des <maths> sur le fichier content.xml extrait du .ODT
19 * @internal XSLT pour la transformation MathML 2.0 to LaTeX :
20 * Vasil Yaroshevich, <yarosh@raleigh.ru>
21 * http://www.raleigh.ru/MathML/mmltex/index.php?lang=en
22 * @param string $chemin_fichier Le chemin du fichier contenant le MathML
23 * @return string Le LateX de sortie
26 function odt2spip_traiter_mathml($chemin_fichier) {
27 // recuperer le contenu du fichier
28 if (!$mathml = file_get_contents($chemin_fichier))
29 return(_T('odtspip:err_transformation_xslt_mathml'));
31 // virer le DOCTYPE qui plante le parseur vu que la dtd n'est pas disponible
32 $mathml = preg_replace('/<!DOCTYPE.*?>/i', '', $mathml);
34 // appliquer la transformation XSLT sur le fichier content.xml
35 // chemin du fichier xslt a utiliser pour les maths
36 $xslt_texte = _DIR_PLUGIN_ODT2SPIP
.'inc/xsltml/mmltex.xsl';
38 // on est php5: utiliser les fonctions de la classe XSLTProcessor
39 $proc = new XSLTProcessor();
41 $xml = new DOMDocument();
42 $xml->loadXML($mathml);
43 $xsl = new DOMDocument();
44 $xsl->load($xslt_texte);
45 $proc->importStylesheet($xsl); // attachement des règles xsl
48 if (!$latex_sortie = $proc->transformToXml($xml))
49 return(_T('odtspip:err_transformation_xslt_mathml'));