如何将HtmlDocument保存到内存中?Html敏捷包

Nic*_*ick 4 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();
    }
Run Code Online (Sandbox Code Playgroud)

And*_*tan 8

尝试

memoryStream.Seek(0, System.IO.SeekOrigin.Begin)
Run Code Online (Sandbox Code Playgroud)

在创建StreamReader和调用之前ReadToEnd()

流指针很可能通过该Save方法留在流的末尾(组件执行此操作的最佳做​​法是 - 如果想要向流中附加更多数据),因此在您调用时ReadToEnd,它已经在最后并且什么都看不到.