Синтаксический анализ XML с помощью HtmlAgilityPack

#c# #xml #web-services #html-agility-pack #azure-worker-roles

#c# #xml #веб-сервисы #html-agility-pack #azure-рабочие роли

Вопрос:

Я анализирую xml с помощью HtmlAgilityPack в роли рабочего веб-сервиса, но что-то не так. Когда я выбираю дочерний узел «ссылка», получаю пустой символ. xml, подобный :

 <link>
http://www.webtekno.com/google/google-ve-razer-dan-oyun-konsolu.html
</link>
  

мой код для получения ссылки из rss:

 HtmlNodeCollection nodeList = doc.DocumentNode.SelectNodes("//item");
foreach (HtmlNode node in nodeList)
{
    string newsUri = node.ChildNodes["link"].InnerText;
}
  

Я думаю, что получает пустой символ, потому что узел ссылки включает новую строку и после ссылки. Как я могу получить ссылку в узле?

Комментарии:

1. Почему? Разве вы не можете использовать надлежащий XML API (например XDocument )?

2. Я пытаюсь это сделать, но проблема все еще существует.

Ответ №1:

Поместите эту строку перед загрузкой HTMLDocument

 HtmlNode.ElementsFlags["link"] = HtmlElementFlag.Closed;
  

Вот и все.

По умолчанию его значением является HtmlElementFlag.Empty и обрабатывается как теги meta и img