Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.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
.net Http敏捷包-访问同级?_.net_Html_Html Agility Pack_Html Content Extraction_Scrape - Fatal编程技术网

.net Http敏捷包-访问同级?

.net Http敏捷包-访问同级?,.net,html,html-agility-pack,html-content-extraction,scrape,.net,Html,Html Agility Pack,Html Content Extraction,Scrape,使用HTML敏捷包对于获取子体和整个表等非常有用。。。但是,在下面的情况下,如何使用它呢 ...Html Code above... <dl> <dt>Location:</dt> <dd>City, London</dd> <dt style="padding-bottom:10px;">Distance:</dt> <dd style="padding-bottom:10px;">0 miles

使用HTML敏捷包对于获取子体和整个表等非常有用。。。但是,在下面的情况下,如何使用它呢

...Html Code above...

<dl>
<dt>Location:</dt>
<dd>City, London</dd>
<dt style="padding-bottom:10px;">Distance:</dt>
<dd style="padding-bottom:10px;">0 miles</dd>
<dt>Date Issued:</dt>
<dd>26/10/2010</dd>
<dt>type:</dt>
<dd>cement</dd>
</dl>

...HTML Code below....
…上面的Html代码。。。
地点:
伦敦市
距离:
0英里
发布日期:
26/10/2010
类型:
水泥
…下面是HTML代码。。。。
如果英里数小于15,你怎么能找到呢?在这种情况下,我不知道你可以对元素做些什么,但是你必须让所有元素都找到正确的一个,然后找到数字来检查它的值吗?或者有没有更好的方法使用带有Agility pack的正则表达式来实现这一点…

我很确定(没有检查)它支持
以下同级::
轴,因此您可以找到节点
“dt[.='Distance:']”“
然后找到
节点。选择SingleNode(“以下同级::dd[1]”或(更简单)如果您确定
dd
总是紧跟在
dt
之后,只需使用
node.NextSibling

例如:

string distance = doc.DocumentNode.SelectSingleNode(
          "//dt[.='Distance:']/following-sibling::dd").InnerText;
仅获取html兄弟姐妹

public static List<HtmlNode> GetHtmlNodeList(string html)
{
        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(html);
        var regs = doc.DocumentNode.SelectSingleNode("//div");
        var first = regs.Descendants().FirstOrDefault();
        var second = first.NextSibling;
        List<HtmlNode> list = new List<HtmlNode>();
        while (second != null)
        {
            list.Add(second);
            second = CheckSibling(second);
        }
        return list;
}

private static HtmlNode CheckSibling(HtmlNode node)
{
        node = node.NextSibling;
        return node;          
}
公共静态列表GetHtmlNodeList(字符串html)
{
HtmlDocument doc=新的HtmlDocument();
doc.LoadHtml(html);
var regs=doc.DocumentNode.SelectSingleNode(//div);
var first=regs.subjects().FirstOrDefault();
var second=first.NextSibling;
列表=新列表();
while(秒!=null)
{
列表。添加(第二);
第二个=校验兄弟(第二个);
}
退货清单;
}
私有静态HtmlNode校验同级(HtmlNode节点)
{
node=node.NextSibling;
返回节点;
}