대체 텍스트 html 민첩성 팩으로 이미지 바꾸기

asp.net c# html-agility-pack

문제

이미지 대신 HTML을 구문 분석하고 대체 태그에 포함 된 텍스트가있는 새 태그로 대체해야합니다. 누군가 linq 및 표준 사용법이 작업을 수행하는 방법을 보여줄 수 있습니까?

나는 단락을 대체하기 위해 지금 linq 샘플을 사용했다. 그러나 읽기 전용 오류가 발생합니다.

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);      
    IEnumerable<HtmlNode> paragraphs = doc.DocumentNode.DescendantNodes().Where(p => p.Name.ToLower() == "p");
    foreach (HtmlNode p in paragraphs)
    {
        p.InnerText = "Hello World";
    }

또한 텍스트로 다시 전송하는 쉬운 방법이 있습니까? 즉 문자열로 출력합니다.

이것은 내가 가지고있는 것입니다.

    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);      
    IEnumerable<HtmlNode> paragraphs = doc.DocumentNode.DescendantNodes().Where(p => p.Name.ToLower() == "p");
    foreach (HtmlNode p in paragraphs)
    {
        p.InnerText = "Hello World";
    }

수락 된 답변

var images = doc.DocumentNode.SelectNodes("//img");
if (images != null)
{
    foreach (HtmlNode image in images)
    {
        var alt = image.GetAttributeValue("alt", "");
        var nodeForReplace = HtmlTextNode.CreateNode(alt);
        image.ParentNode.ReplaceChild(nodeForReplace, image);
    }
}

var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
{
    doc.Save(writer);
}



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