HtmlAgilityPack - 자식 노드는 제거하지만 주 노드의 내부 텍스트는 XPath없이 유지합니다.

c# html-agility-pack

문제

나는 html을 좋아한다 :

<div class="asd"> lalala </br> lalala2 <div> aaaaa </div> </div>

XPath를 사용하지 않고 "lalala \ n lalala2"만 가져와야합니다.

수락 된 답변

HtmlNode에 대한 확장 메소드를 생성 할 수 있습니다.

public static class HtmlHelper
{
    public static string InnerText(this HtmlNode node)
    {
        var sb = new StringBuilder();
        foreach (var x in node.ChildNodes)
        {
            if (x.NodeType == HtmlNodeType.Text)
                sb.Append(x.InnerText);

            if (x.NodeType == HtmlNodeType.Element && x.Name == "br")
                sb.AppendLine();
        }

        return sb.ToString();
    }
}

그냥 노드를 찾아 node.InnerText ()를 호출하면됩니다.




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