2012-03-28 3 views
1

unten ist der Brocken von XML ich als Eingabe und ich muss die Telefonnummer in der gefunden (732) 462-13112-Knoten, wenn die span in diesem Beispielcode fed.com leer ist .Xpath bedingte Überprüfung von XML-Datenpunkt

Ich beginne mit Xpath, um die einzige Gewissheit zu erspähen, die ich im XML sehe und das ist "// nobr", wie kann ich zu dem Bereich mit ted.com navigieren und testen, ob etwas vorhanden ist ?

<div> 
    <div></div> 
    <span class="pp-headline-item pp-headline-phone"> 
     <span class="telephone" dir="ltr"> 
      <nobr>(732) 462-1311</nobr> 
      <span class="pp-headline-phone-label" style="display:none">()</span> 
     </span>&#8206; 
    </span> 
    <span> &middot; </span> 
    <span class="pp-headline-item pp-headline-authority-page"> 
     <span> 
      <a href="http://maps.google.com/local_url?q=http://www.federicis.com/&amp;dq=07746+pizza"> 
       <span>fed.com</span> 
      </a> 
     </span> 
    </span> 
</div> 

Antwort

2

Wenn ich Ihre Frage richtig verstanden habe, können Sie die folgenden Befehle verwenden:

/div[//a//span[not(text())]]//nobr/text() 

Dies wird die Telefonnummer gefunden in nobr zurück, wenn die Spanne enthält fed.com leer ist, sonst wird es zurückkehren eine leere Zeichenfolge.

bearbeiten:

Wenn Sie mehrere a-Tags unter dem Haupt-div haben, können Sie diese verwenden, um die spezifischen Spanne zu extrahieren:

//a//span[@class='pp-headline-item pp-headline-authority-page']//a/span[not(text())] 
+0

, so kann ich die alle Knoten bekommen nur unter Verwendung derselben \\ nobr \ .. \ um Eltern der Knoten zu erhalten. aber wie kann ich überprüfen, ob das Kind Spannweite von diesem Punkt hat einen Wert und nicht ein leeres Tag wie kacalapy

+0

Ich glaube, dass meine aktualisierte Antwort besser beantwortet Ihre Frage. Bitte lassen Sie mich wissen, wenn dies nicht der Fall ist. – countfromzero

+0

danke Justin. Könnten Sie mit http://stackoverflow.com/questions/9958730/navigate-to-section-and-jump-up-an-xml-dom-with-xpath eine Hand reichen – kacalapy