HTML Agility Pack修復
  • 清單順序
  • .net c# html html-agility-pack

    我一直在嘗試使用HTML Agility Pack將HTML解析為有效的XHTML,以便進入更大的XML文件。這在大多數情況下工作,但列表格式如下:

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

    與我期望的相反:

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

    不幸的是,這種帶有嵌套li標籤的格式不能通過我無法控制的模式驗證。有沒有人知道通過HTML Agility Pack或其他方法來糾正這個問題的簡單方法。最好是在.NET中。

    一般承認的答案

    我找到了一個名為HTML Tidy的敏捷包的替代品http://tidy.sourceforge.net/我實際上使用了名為Tidy.NET的.NET端口http://sourceforge.net/projects/tidynet/這似乎解決了我的問題。


    熱門答案

    我也在其他網站上找到了你的問題。您要解析的HTML是:

    <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>
    

    我注意到第一個<li>是其他<li>'s父級。我要採取的一個方法是採用第一個<li>和文本(它是HAP的TextNode),保存其他<li>子項並刪除子項,在父節點之後插入它們(在格式化時)。
    您可能必須採用遞歸方式。以下是我對HTML Sanitizer類的解決方案: HTML Agility Pack strip標籤NOT IN白名單




    許可下: CC-BY-SA with attribution
    不隸屬於 Stack Overflow
    這個KB合法嗎? 是的,了解原因
    許可下: CC-BY-SA with attribution
    不隸屬於 Stack Overflow
    這個KB合法嗎? 是的,了解原因