Ich verwende HTML Agility Pack zum Parsen und HTML-Dokument, führe eine Änderung an einem Knoten durch und speichere das HTML-Dokument. Ich möchte das Dokument speichern, damit ich den HTML-Code später in der Anwendung als String ausgeben kann. Meine aktuelle Implementierung gibt immer eine Zeichenfolge == "" zurück. Ich kann sehen, dass das HtmlDocument-Objekt beim Debuggen nicht leer ist. Kann jemand etwas Einblick geben?
private string InitializeHtml(HtmlDocument htmlDocument)
{
string currentUserName = User.Identity.Name;
HtmlNode scriptTag = htmlDocument.DocumentNode.SelectSingleNode("//script[@id ='HwInitialize']");
scriptTag.InnerHtml =
string.Format("org.myorg.application = {{}}; org.myorg.application.init ={{uid:\"{0}\", application:\"testPortal\"}};",currentUserName);
MemoryStream memoryStream = new MemoryStream();
htmlDocument.Save(memoryStream);
StreamReader streamReader = new StreamReader(memoryStream);
return streamReader.ReadToEnd();
}
Versuchen
memoryStream.Seek(0, System.IO.SeekOrigin.Begin)
Bevor Sie den StreamReader
und ReadToEnd()
aufrufen
Der Stream-Zeiger wird wahrscheinlich am Ende des Streams durch die Save
Methode verlassen (es ist die beste Vorgehensweise für eine Komponente, dies zu tun - falls Sie weitere Daten an den Stream anhängen möchten), also wenn Sie ReadToEnd
, ist es bereits bei Ende und nichts wird gelesen.