Как заменить через xpath?

indus

Client
Регистрация
14.06.2014
Сообщения
207
Благодарностей
60
Баллы
28
Привет, кто разбирается в этом, подскажите если не сложно:

Есть переменная Text с html кодом:

HTML:
код
<div id="inject_1522542732"></div>
код
<div id="inject_55456452"></div>


как c помощью C# произвести замену таких div на какоето значение , указывая их не через регулярку а через xpath (цифры могут быть разные)?
 

Shevassa

Client
Регистрация
24.01.2011
Сообщения
54
Благодарностей
30
Баллы
18
Если не через браузер надо, то разве что такая жесть в голову пришла на HtmlAgilityPack

using HtmlAgilityPack;
using System.Xml.XPath;
и подключить сами библиотеки HtmlAgilityPack и System.Xml.XPath.dll

Код:
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
var template_html = "<div id=\"inject_1522542732\"></div>какой-то код<div id=\"inject_55456452\"></div>какой-то код";
var var_xpath1 = "div[contains(@id,'inject_')]";// xpath для поиска элементов
doc.LoadHtml(template_html);
var Nodes_list_1 = doc.DocumentNode.SelectNodes(var_xpath1);
if (Nodes_list_1 != null)
{
foreach (var res in Nodes_list_1)
  {
  var newNodeStr = "на что меняем";
  var newNode = HtmlNode.CreateNode(newNodeStr);
  res.ParentNode.ReplaceChild(newNode, res);
  }
}

return doc.DocumentNode.OuterHtml;
 
  • Спасибо
Реакции: indus

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)