2016-03-18 8 views
0

Можно ли удалить весь div с определенным именем класса? Например;Удалить весь div с определенным именем класса

<body> 
<div class="head">...</div> 
<div class="container">...</div> 
<div class="foot">...</div> 
</body> 

Я хотел бы удалить div с классом «контейнер».

Пример кода на C# был бы полезен, спасибо.

+0

Действительно, это возможно. но пытаетесь ли вы удалить его на C#? – Saleem

+0

@Saleem Да, это веб-браузер. –

ответ

1

Правильный способ (я полагаю) сделать это через встроенные классы и методы DOM Gecko.

Таким образом, в вашем случае что-то вроде:

var containers = yourDocument.GetElementsByClassName("container"); 
//this returns an IEnumerable of elements with this class. If you only ever gonna have one, you can do it like that: 
var yourContainer = containers.FirstOrDefault(); 
yourContainer.Parent.RemoveChild(yourContainer); 

Очевидно, вы также можете сделать петли и т.д.

1

Если вы хотите разобрать HTML в C# лучший способ заключается в использовании Html ловкости пакета:

https://htmlagilitypack.codeplex.com/

HtmlDocument document = new HtmlDocument(); 
document.Load(@"C:\yourfile.html") 

HtmlNode nodesToRemove= document .DocumentNode.SelectNodes("//div[@class='container']").ToList(); 

foreach (var node in nodesToRemove) 
    node.Remove(); 
+0

Я думаю, что нет смысла использовать HtmlAgilityPack, если geckofx позволяет это так же хорошо (или лучше IMO) – Bartosz

0

Ну, с помощью регулярных выражений, вы можете удалить нужный DIV

var data = "<body>\n<div class=\"head\">...</div>\n" + 
    "<div class=\"container\">...</div>\n" + 
    "<div class=\"foot\">...</div>\n</body>"; 

var rxStr = "<div[^<]+class=([\"'])container\\1.*</div>"; 

var rx = new System.Text.RegularExpressions.Regex (rxStr, 
    System.Text.RegularExpressions.RegexOptions.IgnoreCase); 


var nStr = rx.Replace (data, ""); 

Console.WriteLine (nStr); 

Это позволит уменьшить строку

<body> 
<div class="head">...</div> 

<div class="foot">...</div> 
</body> 
+0

Это очень плохая, плохая идея. Разбор html/xml с регулярными выражениями, особенно если вы создали способы сделать это просто неправильно :) – Bartosz

 Смежные вопросы

  • Нет связанных вопросов^_^