HtmlAgilityPack을 사용하여 단일 노드의 내부 텍스트를 얻는 방법

c# html-agility-pack

문제

내 HTML은 다음과 같습니다.

        <div id="footer">
            <div id="footertext">
                <p> 
                    Copyright &copy; FUCHS Online Ltd, 2013. All Rights Reserved.
                </p>
             </div>
        </div>

마크 업에서이 텍스트를 가져 와서 C # 코드에 문자열로 저장하고 싶습니다. "Copyright © FUCHS Online Ltd, 2013. All Rights".

이것이 제가 시도한 것입니다 :

   public string getvalue()
        {
            HtmlWeb web = new HtmlWeb();
            HtmlAgilityPack.HtmlDocument doc = web.Load("www.fuchsonline.com");
            var link = doc.DocumentNode.SelectNodes("//div[@id='footertext']");
            return link.ToString();
        }

그러면 "HtmlAgilityPack.HtmlNodeCollection"유형의 객체가 반환됩니다. 이 텍스트 값을 어떻게 만듭니 까?

인기 답변

하나의 노드 값이 필요합니다. 따라서 SelectSingleNode 메서드를 사용하는 것이 좋습니다.

HtmlWeb web = new HtmlWeb();
var doc = web.Load("http://www.fuchsonline.com");
var link = doc.DocumentNode.SelectSingleNode("//div[@id='footertext']/p");

string rawText = link.InnerText.Trim();
string decodedText = HttpUtility.HtmlDecode(text); // or WebUtility

return decodedText;

또한 HTML 엔티티 &copy; .



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