HtmlAgilityPack: Ruft das gesamte HTML-Dokument als Zeichenfolge ab

73

Kann HtmlAgilityPack das gesamte HTML-Markup von einem HtmlDocument-Objekt als Zeichenfolge zurückgeben?

deostroll
quelle
Warum müssen Sie das gesamte Markup als Zeichenfolge zurückgeben, wenn dies die Eingabe für etwas ist, das es analysiert?
Matt Ball
Ich versuche, das Markup direkt in einer Word-Dokumentdatei (.doc) zu speichern.
Deostroll
3
@MattBall, weil HTML Agility Pack nicht schreibgeschützt ist und nicht nur zum Parsen! Hier können Sie Änderungen an den HTML-Elementen vornehmen. Es ist nur natürlich, dass Sie dann in der Lage sein möchten, den endgültigen HTML-Code wieder herauszuholen!
BrainSlugs83

Antworten:

127

Klar, das kannst du so machen:

HtmlDocument doc = new HtmlDocument();
// call one of the doc.LoadXXX() functions
Console.WriteLine(doc.DocumentNode.OuterHtml);

OuterHtml enthält das gesamte HTML.

Simon Mourier
quelle
2
Perfekt. Vielen Dank!
Mack
Als ich dies mit der aktuellen Version versuchte, bekam ich die URL zurück, nicht die ganze Seite! Keine Sorge, ich werde es überprüfen, ich muss es sein.
NoChance
-1

Sie können WebRequest erstellen, indem Sie Url übergeben und webResponse abrufen. Holen Sie sich ResponseStream von WebResponse und lesen Sie es in einen String.

string result = string.Empty;

WebRequest req = WebRequest.Create(Url);
WebResponse res= wrq.GetResponse();    
StreamReader reader = new StreamReader(res.GetResponseStream());
result = reader.ReadToEnd();    
reader.Close();
res.Close();

Hoffe das hilft.

buda
quelle
Damit haben Sie ganzes HTML und können es speichern, wo immer Sie wollen.
Buda
2
Ich müsste weiter mit dem HTML arbeiten, und schließlich würde ich das endgültige HTML-Dokument als Zeichenfolge benötigen ... Ich möchte nur wissen, ob das Tool nur das Speichern in einer Datei ermöglicht, oder ob ich die Option habe des Extrahierens des HTML heraus, ohne die Datei speichern /
beibehalten zu müssen
3
Abgestimmt. Die Frage betraf speziell das HTML Agility Pack und nicht eine Webanforderung. - Diese Antwort hat nichts mit der gestellten Frage zu tun.
BrainSlugs83