Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除具有特定类名的整个div_C#_Webbrowser Control_Xulrunner_Geckofx - Fatal编程技术网

C# 删除具有特定类名的整个div

C# 删除具有特定类名的整个div,c#,webbrowser-control,xulrunner,geckofx,C#,Webbrowser Control,Xulrunner,Geckofx,是否可以使用特定的类名删除整个div?比如, <body> <div class="head">...</div> <div class="container">...</div> <div class="foot">...</div> </body> ... ... ... 我想删除带有“container”类的div C代码示例非常有用,谢谢。如果您想用C解析html,最好的方法是使用htm

是否可以使用特定的类名删除整个div?比如,

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

...
...
...
我想删除带有“container”类的div


C代码示例非常有用,谢谢。

如果您想用C解析html,最好的方法是使用html agility pack:


如果您想在c#中解析html,最好的方法是使用html agility pack:


在regex的帮助下,您可以删除所需的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);
var data=“\n…”+
“…\n”+
“…\n”;

var rxStr=“在regex的帮助下,您可以删除所需的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);
var data=“\n…”+
“…\n”+
“…\n”;
var rxStr=“正确的方法(我想)是通过内置的Gecko DOM类和方法

因此,在您的情况下,类似于:

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);
显然,您也可以执行循环等操作。

正确的方法(我想)是通过内置Gecko DOM类和方法来实现

因此,在您的情况下,类似于:

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);

显然,您还可以执行循环等操作。

这确实是可能的。但你想在C#中删除它吗?@Saleem是的,这是一个网络浏览器。确实是可能的。但是你想在C#中删除它吗?@Saleem是的,它是一个网络浏览器。这是一个非常糟糕的主意。用正则表达式解析html/xml,特别是如果您已经构建了这样做的方法,这是一个非常糟糕的想法。使用正则表达式解析html/xml,特别是如果您已经构建了这样做的方法,那么这是错误的:)我认为如果geckofx允许同样好(或更好的IMO),那么使用HtmlAgilityPack就没有意义了。如果geckofx允许同样好(或更好的IMO),那么使用HtmlAgilityPack就没有意义了