如何將HtmlDocument保存到內存中? Html敏捷包

c# html-agility-pack

我正在使用HTML Agility Pack來解析和HTML文檔,對節點進行更改,然後保存HTML文檔。我想將文檔保存到內存中,以便稍後在應用程序中將HTML寫為字符串。我當前的實現總是返回一個字符串==“”。我可以看到調試時HtmlDocument對像不為空。有人能提供一些見解嗎?

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();
    }

一般承認的答案

嘗試

memoryStream.Seek(0, System.IO.SeekOrigin.Begin)

在創建StreamReader並調用ReadToEnd()

流指針很可能通過Save方法留在流的末尾(組件執行此操作的最佳做​​法是 - 如果想要向流中添加更多數據),因此當您調用ReadToEnd ,它已經在結束,什麼也沒有讀。




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因