HTMLアジリティパック修正
  • リストの順序
  • .net c# html html-agility-pack

    質問

    私は、HTML Agile Packを使ってHTMLを解析して、有効なXHTMLにしてより大きなXMLファイルに入れようとしています。しかし、これはほとんどの部分の作品はリストのようにフォーマットされます:

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

    私が期待するものに反対する:

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

    残念ながら、ネストされたliタグを持つこの形式は、私が制御できないスキーマ検証には合格しません。 HTMLアジリティパックまたは代替方法のいずれかを使ってこれを修正する簡単な方法を知っている人はいますか?好ましくは.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親であることです。私が取るべきことの1つは、最初の<li>とテキスト(HAP用のTextNode)を取り、他の<li>子を保存し、子ノードを削除し、親ノードの後に​​(フォーマッティングしながら)挿入することです。
    これで再帰的な方法をとらなければならないかもしれません。ここでは、HTML Sanitizerクラスのための私の解決策を見ています: HTML Agilityパックストリップタグはホワイトリストにありません



    Related

    ライセンスを受けた: CC-BY-SA with attribution
    所属していない Stack Overflow
    ライセンスを受けた: CC-BY-SA with attribution
    所属していない Stack Overflow