Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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# 使用HTMLAgilityPack C检索在HTML页面中循环的深层嵌套值#_C#_Html_Html Agility Pack - Fatal编程技术网

C# 使用HTMLAgilityPack C检索在HTML页面中循环的深层嵌套值#

C# 使用HTMLAgilityPack C检索在HTML页面中循环的深层嵌套值#,c#,html,html-agility-pack,C#,Html,Html Agility Pack,我试图使用HTMLAgilityPack从网页中检索各种特定值。网页总是相同的,我想从中获取的数据总是在相同的位置(相同的div/类/属性等) 我试着循环并获取值,但我总是在某个地方搞砸。我会提供一些代码来提供帮助,但老实说,我已经尝试了5次,每次都没有得到接近我想要的结果——我真的陷入了困境 我已经编写了HTML的主要部分: <div id ="markers"> <div class="row"> <div class="span2 filte

我试图使用HTMLAgilityPack从网页中检索各种特定值。网页总是相同的,我想从中获取的数据总是在相同的位置(相同的div/类/属性等)

我试着循环并获取值,但我总是在某个地方搞砸。我会提供一些代码来提供帮助,但老实说,我已经尝试了5次,每次都没有得到接近我想要的结果——我真的陷入了困境

我已经编写了HTML的主要部分:

<div id ="markers">
   <div class="row">
      <div class="span2 filter-pane   ">
         <div class="teaser teaser-small">
            <h1 class="teaser-title">
            <a href="#map" data-lat="Value1" data-lng="Value2" data-name="Value3">...</a>
         </div>
         <p> Value4 </p>
      </div>
   </div>
   <div class="span2 filter-pane   ">
   </div>
   <div class="span2 filter-pane   ">
   </div>
</div>
<div class="row"></div>
<div class="row"></div>
</div>

价值4

基本上,值(1-4)是我想要从数据中提取的值

是页面上的一个div,我需要的所有信息都在这个div中

有多个
div,我需要遍历所有这些

在每个div中,有三个或更少的
div。我还需要循环浏览这3个div

我的数据在这里-值3在
..

中。其他值可以在
节点中找到,它们是
元素中的属性

我希望有人能为我提供一个解决方案,或者至少是一些很好的指导来访问我想要的所有数据。我尝试过各种方法,但都没有得到我想要的结果


谢谢。

这里给你一些提示。因此,首先您需要获取
div#markers
,因为您提到它包含您需要的所有信息

string mainURL = your url;
HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(mainURL);
var markerDiv = doc.DocumentNode.Descendants("div").FirstOrDefault(n => n.Id.Equal("markers');
//Check if marketDiv is null or not
//Same idea, get list of row divs
var rows = marketDiv.Descendants("div").HasClass("row") //I will provide .HasClass function or you can write your own, it's simple;
//Iterate throw your rows object
//for each row object
var aElement = row.Descendants("a").FirstOrDefault()//you can have more criteria here if it has more than 1 a element
aElement.GetAttributeValue("data-lat", "") //will return Value1 here, do the same thing for other attributes and p.

希望它有帮助

您应该提供您尝试的代码,并解释它是如何不起作用的。否则,看起来(即使这不是您的意图)您希望我们为您编写代码。这不是我们来这里的目的。请记住,至少根据您的说明,这段HTML的格式不正确。非常感谢您,我自己所知真正缺少的是.subjects方法-如果我将其应用到我的案例中,您的代码将帮助我实现我想要的,谢谢:)