Ich bin nicht in der Lage zu sehen, wo ich falsch mit meiner Xpath-Logik bin.Navigieren zu XML-Abschnitt mit xpath
Hier ist ein Abschnitt eines größeren xml, dass ich an Transversieren arbeite. (Man beachte im das Html Agility Pack beiliegt)
<div>
<div></div>
<span class="pp-headline-item pp-headline-phone">
<span class="telephone" dir="ltr">
<nobr>(732) 562-1312</nobr>
<span class="pp-headline-phone-label" style="display:none">()</span>
</span>‎
</span>
<span> · </span>
<span class="pp-headline-item pp-headline-authority-page">
<span>
<a href="http://maps.google.com/local_url?q=http://www.fed.com/q=07746+pizza">
<span>fed.com</span>
</a>
</span>
</span>
</div>
mein Ziel ist es, verschiedene Datenpunkte aus diesen Stücken von XML zu extrahieren, die ich aus der Master-XML-Datei erhalten, indem ein
.SelectNodes("//div/span['pp-headline-item pp-headline-phone']/../..")
mit dieser Verwendung Ich erwarte, alle oben beschriebenen Abschnitte zu bekommen, damit ich sie iterieren kann und Dinge wie Website, Telefon, Adresse ...
Problem ist, wenn ich diesen Knotenpunkt iteriere, kann ich nicht zu den Datenpunkten, die ich will, als ob die Knotensatz ist nicht der oben skizzierte.
Meine Logik besteht darin, ein Knotenset aus dem obersten Div in das Nodset zu extrahieren und beim Iterieren zu Xpath in die Datenpunkte, die ich will.
Ich mache es wie folgt aus:
foreach (HtmlNode n in BuizRowsgoogMaps)
{
//get phone number
if (n.SelectSingleNode("span/nobr").InnerHtml != null)
{
strPhone = n.SelectSingleNode("span/nobr").InnerHtml;
//get phone site
strSite = n.SelectSingleNode("//span['pp-headline-item pp-headline-authority-page']/span/a/span").InnerHtml;
}
}
i mein XPaths vermuten zusammen nicht Netz zu bekommen, was ich will, aber wenn ich meinen Ausdruck zu validieren erhalte ich die gewünschten Ergebnisse ... i verwendet, um dieses mein Denken zu validieren und es funktioniert verlassen mich am wits ende: