Html Agility Pack - Получить html-фрагмент из html-документа

c# html html-agility-pack

Вопрос

Использование пакета html agility; как бы извлечь html-фрагмент из полного html-документа? Для моих целей html-фрагмент определяется как все содержимое внутри тегов <body> .

Например:

Пример ввода:

<html>
   <head>
     <title>blah</title>
   </head>
   <body>
    <p>My content</p>
   </body>
</html>

Желаемый результат:

<p>My content</p>

В идеале я хотел бы вернуть контент без изменений, если он не содержит элемент <html> или <body> (например, предположим, что мне был передан фрагмент в первую очередь, если он не был полным html-документом)

Может кто-то указать мне верное направление?

Принятый ответ

Я думаю, вам нужно сделать это на куски.

вы можете сделать selectnodes документа для тела или html следующим образом

doc.DocumentNode.SelectSingleNode("//body") // returns body with entire contents :)

то вы можете проверить нулевые значения для критериев, и если это предусмотрено, вы можете взять строку как есть.

Надеюсь, поможет :)


Популярные ответы

Будет работать следующее:

public string GetFragment(HtmlDocument document)
{
   return doc.DocumentNode.SelectSingleNode("//body") == null ? doc.DocumentNode.InnerHtml : doc.DocumentNode.SelectSingleNode("//body").InnerHtml;
}


Related

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