我正在开发一个应用程序,我必须从网站上获取数据。网站的格式是:
<div id="id1" class="class1">
<ol class="cls_ol">
<li>
<div class="class2">Content 1</div>
<div class="cls_img">
*** Code for some image ***
</div>
Content 2
</li>
<li> *** Same like above <li> *** </li>
<li> *** Same like above <li> *** </li>
</ol>
</div>
我使用代码来获取此内容......
protected void Button1_Click(object sender, EventArgs e)
{
var obj = new HtmlWeb();
var document = obj.Load(" ** url of a website ** ");
var bold = document.DocumentNode.SelectNodes("//div[@class='class1']");
foreach (var i in bold)
{
Response.Write(i.InnerHtml);
}
但是,我的代码存在的问题是,它还会获取<div class="cls_img"></div>
的图像。我不需要这个图像。那么,如何在不从<div id="id1" class="class1">
获取图片的情况下获取<div class="cls_img">
的所有内容。
答案 0 :(得分:1)
第1步 - 选择并删除<div class="cls_img">
标记内<div class="class1">
内的图片:
var images = document.DocumentNode.SelectNodes(
"//div[@class='class1']//*//div[@class='cls_img']//img"
);
// note that if no nodes found "images" variable will hold a null value
foreach (var image in images)
{
image.Remove();
}
第2步 - 选择<div class="class1">
元素(您已经完成) - 现在没有图像:
var bold = document.DocumentNode.SelectNodes("//div[@class='class1']");
foreach (var node in bold)
{
Console.Write(node.InnerHtml);
}
答案 1 :(得分:0)
遍历节点并找到匹配属性为class =“cls_img”的节点并删除该节点。
node.ParentNode.RemoveChild(node);