html agility pack: come estrarre il testo non elaborato




 Domanda veloce, come faccio a ottenere tutto il testo non elaborato (cioè, rimuovendo tutti i tag html) usando il pacchetto agility html? 


```
HtmlDocument doc = new HtmlDocument();
        doc.Load(html);

```
Se si scarica il codice sorgente dalla [pagina Html Agility Pack](http://htmlagilitypack.codeplex.com/releases/view/44954) (cercare il file " *Html Agility Pack 1.4.0 Source* ") esiste la cartella Html2Txt che contiene il codice necessario (cercare la classe **HtmlToText** nel file **HtmlConvert.cs** ).
<p>con<em> inline </em>script come quello che hai citato, è improbabile che ci sia<em> much </em>difference; tuttavia, ogni volta che il parser html del browser incontra un tag <code>script</code>, questo:</p><ul> <li>arresta bruscamente</li> <li>crea una stringa del testo nel tag fino alla prima volta che vede la stringa <code>"&lt;/script&gt;"</code></li> <li>passa il testo all'interprete javascript, ascoltando l'output che l'interprete invia quando si esegue un <code>document.write</code></li> <li>aspetta che l'interprete finisca</li> <li>inserisce l'output accumulato ricevuto nel flusso di analisi</li> <li>continua la sua analisi</li> </ul><p>quindi aumentare il numero di volte che questa sequenza deve verificarsi può, in teoria, aumentare il tempo di caricamento della pagina. influisce anche sul grado in cui il parser può &quot;guardare avanti&quot; nel flusso di token, il che potrebbe renderlo meno efficiente.</p><p>tutto ciò sembra davvero drammatico, ma dovresti profilare una pagina reale nei vari browser che ti interessano per determinare se ha avuto un impatto reale.</p><p>quindi, in sintesi, combinale il più possibile. se non riesci a combinare ragionevolmente una coppia, non preoccuparti troppo fino a quando non vedi un problema del mondo reale.</p><p>quanto sopra è per script in linea. naturalmente, se si hanno diversi tag <code>script</code> che si riferiscono a una serie di file javascript esterni, si avrà anche il problema che ciascuno di questi file deve essere scaricato, e l'avvio di una richiesta http è una cosa costosa (comparativamente) e quindi è meglio , in grande stile, per combinarli in un unico file.</p><p>alcune altre cose da considerare:</p><ul> <li>avere molti tag <code>script</code> sparsi nel tuo codice html può rendere difficile la manutenzione dello script</li> <li>separare il tuo codice html e lo script in file separati ti aiuta a limitare il livello di accoppiamento, aiutando di nuovo la manutenzione</li> <li>mettendo lo script in un file separato, è possibile eseguire quel file tramite minifiers/compressors/packer, riducendo al minimo le dimensioni del codice e rimuovendo commenti, lasciandoti libero di commentare nel codice sorgente sapendo che quei commenti saranno privati</li> <li>mettere gli script in file esterni ti dà l'opportunità di mantenere le cose separate dalla funzionalità, e quindi combinarle in un unico file per la pagina (compresso/minificato/impacchettato) per una consegna efficiente al browser</li> </ul><p>di più:</p><ul> <li> <a href="http://developer.yahoo.com/performance/rules.html">le &quot;migliori pratiche per accelerare il tuo sito web&quot; di yui</a> </li> <li> <a href="http://code.google.com/speed/page-speed/docs/rules\_intro.html">&quot;best practice per le prestazioni web&quot; di google</a> </li> </ul> non si può fare in html, dovrai impararti il php come minimo (codice che io consiglio vivamente). .epub e da softonic puoi scaricare un programmino gratuito e facile da usare ke ti consente di trasformare tutti i formati di video scrittura in .epub <p>puoi disattivare il plug-in di adobe in chrome, che impone a chrome di scaricare il pdf.</p><p>è in impostazioni&gt; privacy e sicurezza&gt; impostazioni contenuti&gt; pdf documenti. oppure inserisci <code>chrome://settings/content/pdfdocuments</code> nella barra degli indirizzi del tuo browser per andare direttamente lì.</p> <p>hai due modi per farlo:</p><ul> <li><p>utilizzando javascript: </p> <p><code>&lt;tr onclick="document.location = 'links.html';"&gt;</code></p></li> <li><p>usando le ancore:</p> <p><code>&lt;tr&gt;&lt;td&gt;&lt;a href=""&gt;text&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href=""&gt;text&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;</code></p></li> </ul><p>ho fatto il secondo lavoro usando:</p><pre><code>table tr td a { display:block; height:100%; width:100%; } </code></pre><p>per sbarazzarsi dello spazio morto tra le colonne:</p><pre><code>table tr td { padding-left: 0; padding-right: 0; } </code></pre><p>ecco una semplice demo del secondo esempio: <a href="http://jsfiddle.net/bf729/"><strong>demo</strong></a> </p> http://download.html.it/software/pdf24-creator/

se ti interessa un programma per ocr prova questo.

http://download.html.it/software/pdf-xchange-viewer/

e' in italiano , si trova anche la versione pro che più completa , , , ti consiglio anche questo a pagamento...http://abbyy-finereader.it.malavida.com/

è un ottimo programma ,fa di tutto per formati pdf...puoi scaricarlo in prova . <p>se il server è configurato correttamente, non è possibile scaricare un php. verrà eseguito quando chiamato tramite il server web. l'unico modo per vedere cosa fa è ottenere l'accesso al server tramite ssh o ftp o qualche altro metodo.</p><p>questo perché php è un linguaggio lato server, tutte le azioni vengono eseguite sul server, quindi <em>il risultato</em> viene inviato al tuo browser (che è <em>client</em> laterale).</p><p>se hai paura di pasticciare con il tuo sistema, puoi usare virtualbox con ubuntu vm e aprire la pagina da lì. se fai un'istantanea del vm = dopo l'installazione e prima di fare cose pericolose, puoi in seguito tornare a quella istantanea e annullare tutto ciò che lo script avrebbe potuto fare sulla vm.</p> prova a scaricare con µtorrent , questo programma lo trovi su www.softonic.it..oppure su www.tuttogratis.it.. lo installi e una volta fatto questo ... vai in siti dove sono presenti i file da scaricare tipo come : mininova o bitreactor... cmq, per quello che cerchi tu, credo che avresti un sito piuttosto made in italy , vai qui : tntvillage.org.. quando ti piace un file , lo clikki e ti spuntano tutti i dettagli del file, poi se lo vuoi scaricare.. vai in alto a destra , e piccolo c'é scritto : download torrent.. e lo scarichi, automaticamente si copierá nel programma che hai installato precedentemente (e che ho spiegato io all'inizio ^^)..e da lí parte il download... spero di esserti stato d'aiuto ciao ^^ <p>se hai xdocument è più facile usare linq-to-xml:</p><pre><code>var document = xdocument.load(filename); var name = document.descendants(xname.get("name", @"http://demo.com/2011/demo-schema")).first().value; </code></pre><p>se sei sicuro che xpath sia l'unica soluzione di cui hai bisogno:</p><pre><code>using system.xml.xpath; var document = xdocument.load(filename); var namespacemanager = new xmlnamespacemanager(new nametable()); namespacemanager.addnamespace("empty", "http://demo.com/2011/demo-schema"); var name = document.xpathselectelement("/empty:report/empty:reportinfo/empty:name", namespacemanager).value; </code></pre> <p>dipende dal documento .php in cui ti trovi - se ti trovi in ​​item.php, o nei file category-item.php, dovrebbe funzionare quanto segue.</p><p>nella parte superiore del documento, aggiungi questo codice:</p><pre><code>&lt;!-- call to prepare extra fields --&gt; &lt;?php $extrafields = array(); foreach($this-&gt;item-&gt;extra\_fields as $item) { $extrafields[$item-&gt;id] = $item-&gt;value; } ?&gt; </code></pre><p>quindi, ovunque tu voglia chiamare il valore del campo compilato, usa questo:</p><pre><code>&lt;?php if($extrafields[id\_number\_of\_field]!=''):?&gt; &lt;!-- if filled in, then call data --&gt; &lt;?php echo $extrafields[id\_number\_of\_field];?&gt; &lt;!-- actual data call --&gt; &lt;?php endif; ?&gt; </code></pre><p>tag.php funziona in modo leggermente diverso, così come i moduli k2.</p><p>tag.php - non è necessario il codice aggiuntivo in testa, quanto segue chiamerà i dati del campo.</p><pre><code>&lt;?php $extrafields = json\_decode($item-&gt;extra\_fields);?&gt; &lt;?php foreach($extrafields as $key=&gt;$value): ?&gt; &lt;?php if($extrafields[$key]-&gt;id == 'id\_number\_of\_field'&amp;&amp;$extrafields[$key]-&gt;value!=''): ?&gt; &lt;?php echo $extrafields[$key]-&gt;value; ?&gt;, &lt;?php endif; ?&gt; &lt;?php endforeach; ?&gt; </code></pre><p>ancora una volta, con module\_k2\_content, non è necessaria la prima chiamata di dati. ottieni i dati sul campo in questo modo:</p><pre><code>&lt;?php echo $item-&gt;extrafields-&gt;alias\_of\_field-&gt;value ;?&gt; </code></pre><p>spero che sia d'aiuto.</p>