2012-03-28 39 views
1

下面是我輸入的XML塊,如果此示例代碼fed.com中的範圍爲空,我需要選擇(732)462-13112節點中找到的電話號碼。xpath XML數據點的條件檢查

我從xpath開始發現我在XML中看到的唯一確定性,那就是「// nobr」如何導航到包含ted.com的跨度並測試以查看是否存在任何東西?

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

回答

2

如果我正確理解你的問題,你可以使用以下命令:

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

這將返回NOBR發現電話號碼,如果包含跨度fed.com是空的,否則將返回一個空的字符串。

編輯

如果您有主要的div下多一個標籤,你可以用它來提取特定跨度:使用

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

這樣我就可以得到所有的節點一樣的\\ nobr \ .. \以獲得nobr節點的父節點。但我怎麼能檢查,如果從這一點的孩子跨度有一個值,而不是一個空的標籤,如 kacalapy 2012-03-28 20:23:07

+0

我相信我的更新迴應更好地回答你的問題。如果情況並非如此,請告訴我。 – countfromzero 2012-03-28 21:37:09

+0

感謝賈斯汀。你可以借用http://stackoverflow.com/questions/9958730/navigate-to-section-and-jump-up-an-xml-dom-with-xpath – kacalapy 2012-03-31 18:58:40