HtmlAgilityPack to replacechild, почему он не работает?

c# html-agility-pack

Вопрос

Я реализую функцию для запроса страницы « http://cnblogs.com ».
Когда я использую HtmlAgilityPack для замены большего количества HtmlNode, но некоторые из них запутывают вещи ----- Он не может заменить.

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using HtmlAgilityPack;//I Use NuGet to include HtmlAgilityPack(Vs2012)

namespace CatchWebSample
{
    class Program
    {
        public static void Main(string[] args)
        {
            HtmlDocument document = new HtmlDocument();
            WebClient wc = new WebClient();
            wc.Encoding = Encoding.GetEncoding("utf-8");
            string content = wc.DownloadString("http://cnblogs.com");
            document.LoadHtml(content);
            string oldContent = document.DocumentNode.OuterHtml;

            //here, I want to replace all xpath= //div[@class='post_item_foot'] htmlnodes
            HtmlNodeCollection targetNodeCollection = document.DocumentNode.SelectNodes(@"//div[@class='post_item_foot']");

            HtmlNode newHtmlNode;
            if (targetNodeCollection != null && targetNodeCollection.Count > 0)
            {
                for (int i = 0; i < targetNodeCollection.Count; i++)
                {
                    var targetNode = targetNodeCollection[i];
                    newHtmlNode = document.CreateElement("span");
                    newHtmlNode.InnerHtml = HtmlDocument.HtmlEncode("###### REPLACED CONTENT #########");

                    targetNode.ParentNode.ReplaceChild(newHtmlNode, targetNode);
                }

                content = document.DocumentNode.OuterHtml;

                //but the result is same of the original data,why it can not replace ?
                bool flag = string.Compare(oldContent, content) == 0;
            }

        }
    }
}

Я так запутан, и почему?

Популярные ответы

replaceChild (), insertAfter () внезапно оба они перестали работать и для меня.

моя лучшая альтернатива заключалась в замене innerhtml на «новую строку html»,

targetnode.innerhtml = newNodeAsString;

редактировать:

была ошибка в HtmlAgilityPack, вставляющая значения / узлы. из-за некоторого кэширования, чтобы заставить его работать быстрее.

вот почему я бросил его. и использовал AngleSharp .

редактировать:

в середине 2017 года здесь разрабатывается HAP . я не вернусь. также вы не можете создать проблему в HAP.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow