Domanda

Uso della Agility pacchetto HTML è grande per ottenere discendenti e tabelle integrali, ecc ... ma come si può utilizzare in seguito situazione

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

Come si potrebbe trovare se miglia era inferiore a 15, in questo caso, io undestand si potrebbe fare qualcosa con gli elementi, ma avrei dovete ottenere tutti gli elementi trovano il giusto uno e poi trovare il numero solo per controllare il suo valore? O è che ci sono modo per utilizzare espressioni regolari con agilità in valigia per raggiungere questo obiettivo in un modo migliore ...

È stato utile?

Soluzione

Sono abbastanza sicuro (non hanno controllato) che supporta l'asse following-sibling::, così da poter o trovare il "dt[.='Distance:']" nodo e poi trovare node.SelectSingleNode("following-sibling::dd[1]") - o (più semplice) proprio uso node.NextSibling se sono sicuro che il dd segue sempre immediatamente l'dt.

Ad esempio:

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

Altri suggerimenti

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;          
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top