Как получить внутренний текст для одного узла с помощью 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. Все права».

Вот что я пробовал:

   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;

Также вам может потребоваться декодировать объект &copy; html &copy; ,



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему