Correzione HTML Agility Pack
  • lista ordine
  • .net c# html html-agility-pack

    Domanda

    Ho cercato di utilizzare HTML Agility Pack per analizzare HTML in XHTML valido per andare in un file XML più grande. Questo per la maggior parte funziona, tuttavia gli elenchi vengono formattati come:

    <ul>
        <li>item1
        <li>item2
        </li></li>
    </ul>
    

    Come opposto a quello che mi aspetterei:

    <ul>
        <li>item1</li>
        <li>item2</li>
    </ul>
    

    Sfortunatamente questo formato con tag li nidificati non supera la convalida dello schema su cui non ho alcun controllo. Qualcuno sa un modo semplice per correggere questo tramite l'HTML Agility Pack o un'alternativa. Preferibilmente in .NET.

    Risposta accettata

    Ho trovato un'alternativa al pacchetto di agilità chiamato HTML Tidy http://tidy.sourceforge.net/ In realtà ho usato la porta .NET chiamata Tidy.NET http://sourceforge.net/projects/tidynet/ questo sembrava risolvere il mio problema .


    Risposta popolare

    Ho trovato la tua ricerca anche su altri siti. L'HTML che stai cercando di analizzare è:

    <UL>
    <LI>NVQ Level 3 in Fabrication and Welding Engineering
    <LI>Level 3 Certificate in Engineering
    <LI>Level&nbsp;2 Key Skill in Application of Number
    <LI>Level&nbsp;2 Key Skill in Communication
    <LI>Level&nbsp;2 Key Skill in Information Technology
    <LI>Level 2 Key Skill in Working with Others
    <LI>Level 2 Key Skill in Improving Own Learning &amp; Performance</LI></UL>
    

    Quello che noto è che il primo <li> è padre degli altri <li>'s . Un aproach che prendo in questo consiste nel prendere il primo <li> e il testo (è un TextNode per HAP), salvare gli altri <li> figli e rimuovere i figli, inserendoli (durante la loro formazione) dopo il nodo genitore.
    Potrebbe essere necessario prendere il modo ricorsivo a questo. Ecco una panoramica della mia solutione per una classe HTML Sanitizer: tag di tag HTML Agility Pack NOT IN whitelist



    Autorizzato sotto: CC-BY-SA with attribution
    Non affiliato con Stack Overflow
    È legale questo KB? Sì, impara il perché
    Autorizzato sotto: CC-BY-SA with attribution
    Non affiliato con Stack Overflow
    È legale questo KB? Sì, impara il perché