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 작성하고 ReadToEnd() 호출하기 전에,

스트림 포인터가 가능성으로 스트림의 마지막에 남겨지고 Save 당신이 호출 할 때 그러므로 - 방법 (경우에 당신이 스트림에 더 많은 데이터를 추가 할 그것은 가장 좋은 방법은 구성 요소가이 작업을 수행하기위한거야) ReadToEnd , 그것은에서 이미 끝이고 아무 것도 읽히지 않습니다.




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.