HTMLAgility Pack - OuterHtml 읽기 전용입니까?

html-agility-pack

문제

안녕하세요, 저는 자신의 코드베이스에있는 모든 링크를 탐색하고 <a href="x"> 를 위해 <a href="x"> 에서 <asp:HyperLink> 변경했습니다. 이 HTMLAgilityPack (및 다른 것들) 사용하고 있고 내가 찾은 링크에 대한 OuterHtml 개체를 변경하고 싶습니다. 그러나 그것은 읽기 전용입니까?

나는 HAP에 익숙하지 않다. 새로운 노드를 만들고 이전 노드를 삭제해야 하는가? 아무도 이것에 빠지지 않았나요?

감사!

인기 답변

전체 문서를 문자열로 취급하는 경우 HTML 민첩성 팩을 사용해야하는 이유는 무엇입니까? 대신 태그를 찾아 교체 한 다음 문서를 다시 작성하십시오.

var doc = new HtmlDocument();
doc.LoadHtml(yourString); // or doc.Load(yourStream);

var links = doc.DocumentNode.Descendants("a");
foreach (var link in links)
{
    link.Parent.Replace(ConvertLink(link), link);
}
string newDocument = doc.DocumentNode.OuterHtml; // Or doc.Save();

그리고 ConvertLink 는 다음과 같이 보일 것입니다 :

public HtmlNode ConvertLink(HtmlNode aTag)
{
    var link = HtmlNode.Create("asp:HyperLink");
    link.Attributes.Add(...);
    return link;
}

(컴파일되지 않았으므로 약간의 조정이 필요할 수도 있음).




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