HtmlDocumentをメモリに保存するにはどうすればよいですか? Htmlアジリティパック

c# html-agility-pack

質問

私はHTMLアジリティパックを使用して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を作成してStreamReader ReadToEnd()を呼び出す前に、

ストリームポインタがありそうで、ストリームの終わりに残ってきているSave (それがこれを行うためのコンポーネントのためのベストプラクティスです-場合には、あなたがストリームにデータを追加したい)メソッドを呼び出すときのでReadToEnd 、それが時すでにです何も読まない。




ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ