2017-03-03 6 views
2

ich zur Zeit Text von innen <a> Tags verwendet HtmlAgilityPack Abrufen ist:greift Xpath separaten Text zwischen Link Knoten

foreach (HtmlNode node in html.DocumentNode.SelectNodes("//div[@class='acTrigger']/a")) 
{ 
    lblTest1.Text = lblTest1.Text + ", " + node.InnerText.ToString(); 
} 

und der Code Web sieht wie folgt aus

<li> 
    <div class="acTrigger"> 
     <a href="/16014988/d/" onclick="return queueRefinementAnalytics('Category','Battery')"> 
      Battery         <em>&nbsp;(1)</em> 
     </a> 
    </div> 
</li> 
<li> 
    <div class="acTrigger"> 
     <a href="/15568540/d/" onclick="return queueRefinementAnalytics('Category','Brakes')"> 
      Brakes         <em>&nbsp;(2)</em> 
     </a> 
    </div> 
</li> 
<li> 
    <div class="acTrigger"> 
     <a href="/11436914/d/1979-honda-ct90-cables-lines" onclick="return queueRefinementAnalytics('Category','Cables/Lines')"> 
      Cables/Lines         <em>&nbsp;(1)</em> 
     </a> 
    </div> 
</li> 

Derzeit ist es auf der Rückkehr Ich: Battery (1), Brakes (2), Cables/Lines (1) das ist offensichtlich alles der innere Text. Was ich gerne wissen würde, ist, wie man die zwei Bits auseinander spaltet, so dass ich sie jeweils in einer Liste zur späteren Verwendung speichern kann. Etwas in der Art von: Battery, 1, Brakes, 2, Cables/Lines, 1 so wie sie mir zurückgegeben werden, kann ich sie einfach in Listen werfen.

Der Text zwischen den <em> Tags ist die Anzahl der Ergebnisse auf der Seite, die die <a> Sie zu nimmt. Ich könnte einfach die gesamte Zeichenfolge analysieren, nachdem ich die Textzeile gelesen habe, aber ich habe das Gefühl, dass es eine Methode gibt, dies automatisch mit XPath zu tun und Stück für Stück zurückzugeben, damit ich sie behandeln und speichern kann. Ich bin XPath sehr neu und habe versucht, dies für mehrere Tage selbst zu lösen, ohne Erfolg. Jede Hilfe würde sehr geschätzt werden.

Antwort

2

Ändern Sie Ihren XPath-Ausdruck in //div[@class='acTrigger']/a//text()[normalize-space()] separate Textknoten.

+1

Danke, das hat perfekt funktioniert. Ich versuche immer noch, die XPath-Syntax zu lernen, es ist ein bisschen seltsam. –