Il formato OpenDocument ci permette di manipolare i documenti possedendo solo qualche nozione di Xml. Stavo facendo delle prove di estrazione di testo con PHP 5 da un documento in modo dal poterlo indicizzare, cercando di scrivere meno codice possibile e ho prodotto una ventina di righe, utilizzando le librerie SimpleXML e unzip, una utility a linea di comando dato un documento con un certo nome di file fisso (diciamo b.odt) Attezione: se intendete provare questo programma sappiate che vi crea/sovrascrive un eventuale file content.xml nella directory di lavoro
<?php function esegui($docname) { shell_exec('/usr/bin/unzip'.' '.$docname .' content.xml'); $xml = simplexml_load_file('content.xml'); $nodes = $xml->xpath('//text:p'); foreach( $nodes as $item ) echo $item." "; //unlink commentato per evitare malintesi } esegui('b.odt'); ?>
ed ottengo il testo. 12 righe di codice (commenti compresi) per ricavare il contenuto di un documento. Non male, ma si può fare di meglio: 1 riga sola
<?php shell_exec('/usr/bin/unzip b.odt content.xml');foreach( simplexml_load_file('content.xml')->xpath('//text:p') as $item ) echo $item." ";?>
e funziona. Dopo tante esperienze di programmazione non sono più abituato alla semplicità. Grazie a PHP ed a OpenDocument.
Ciao,
sei riuscito a scrivere il programma che indicizza i file?
Hai qualche suggerimento per scrivere un indicizzatore di file xml?
Commento di Milena — 4 giugno 2008 @ 13:19 |
In Internet trovi diversi motori di indicizzazione, alcuni dei quali gia’ adatti per Open Document. Per indicizzare basta estrarre il testo da XML usando XPath ed indicizzarlo. Un esempio lo puoi trovare nei sorgenti di tracker.
http://www.gnome.org/projects/tracker/index.html
http://svn.gnome.org/viewvc/tracker/trunk/
Commento di lbell — 16 giugno 2008 @ 21:17 |