Frage

ist die HTML-Agility-Pack Mit großer für das Erhalten Nachkommen und ganze Tabellen etc ... aber wie können Sie es in der unten Situation

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

Wie könnte man finden, wenn Meilen weniger war als 15 in diesem Fall undestand ich dir etwas mit Elementen tun könnte, aber würden Sie alle Elemente die richtige bekommen haben zu finden und dann die Nummer finden nur seinen Wert zu überprüfen? Oder ist es Art und Weise zu verwenden regex mit Agility packen dies in einer besseren Art und Weise zu erreichen ...

War es hilfreich?

Lösung

Ich bin ziemlich sicher, dass (nicht überprüft), dass sie die following-sibling:: Achse unterstützt, so konnte man entweder die Knoten "dt[.='Distance:']" finden und dann node.SelectSingleNode("following-sibling::dd[1]") finden - oder (einfacher) nur verwenden, wenn Sie node.NextSibling sicher ist, dass die dd immer sofort die dt folgen.

Zum Beispiel:

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

Andere Tipps

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;          
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top