как заменить
с тегом
с помощью HtmlAgilityPack?

c# html-agility-pack

Вопрос

Довольно странно! Когда я загружаю и заменяю с пустой строкой, используя

 var document = new HtmlDocument();
    document.LoadHtml(data); 
    document.DocumentNode.OuterHtml.Replace("<tbody>", "");

Это отлично работает & <tbody> будет удалено.

Точно так же , когда я пытаюсь заменить <br> с <br/> использования,

document.DocumentNode.OuterHtml.Replace("<br>", "<br/>");

Это не работает :(

также пытался,

 var brTags = document.DocumentNode.SelectNodes("//br");
            if (brTags != null)
            {
                foreach (HtmlNode brTag in brTags)
                {
                    brTag.OuterHtml = "<br/>";
                    // brTag.Name= "br/"; - > Also this one :(
                }
            }

Функция replace () HTMLAgilityPack не работает для самозакрывающихся тегов?

Принятый ответ

document.OptionWriteEmptyNodes = true;

Сделай трюк для тебя!


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

Вам не придется заменить <br> на <br/> вручную, если вам нужно , чтобы закрыть узел, просто поручить библиотеку , чтобы сделать это, например , так:

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.Save(Console.Out);

выведет это:

<br>

и это

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("<br/>");
doc.OptionWriteEmptyNodes = true;
doc.Save(Console.Out);

выведет это:

<br />


Related

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