使用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....

你怎么能找到,如果英里在这种情况下,小于15,我已了解,你可以做一些元素,但你必须把所有的元素找到正确的一个,然后找到数量只是为了检查它的价值?或者是有办法使用正则表达式与敏捷性包以更好的方式来实现这一目标?

有帮助吗?

解决方案

我敢肯定(未选中),它支持following-sibling::轴,所以你可以的或者的查找节点"dt[.='Distance:']",然后找到node.SelectSingleNode("following-sibling::dd[1]") - 或(简单)只使用node.NextSibling如果您是肯定的dd总是紧跟在dt

例如:

string distance = doc.DocumentNode.SelectSingleNode(
          "//dt[.='Distance:']/following-sibling::dd").InnerText;

其他提示

Get just html simblings



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;          
    }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top