Исправлен пакет обновления гибкости HTML
  • список заказов
  • .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/ Я действительно использовал порт .NET под названием Tidy.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 . Один aproach, который я хотел бы принять, - взять первый <li> и текст (это TextNode для HAP), сохранить остальные дочерние элементы <li> и удалить дочерние элементы, вставив их (при их создании) после родительского узла.
    Возможно, вам придется принять рекурсивный путь. Вот загляните в мой solutuion для HTML Sanitizer класса: HTML Agility Pack полосы теги НЕ В белом списке



    Related

    Лицензировано согласно: CC-BY-SA with attribution
    Не связан с Stack Overflow
    Лицензировано согласно: CC-BY-SA with attribution
    Не связан с Stack Overflow