2010-09-06 75 views
0

我正在嘗試編寫一個PHP腳本,它可以從Google Reader中讀取我的總未讀數。我已經得到了來自Google的XML響應(其中還包括每個提要的未讀數),但是現在我無法訪問正確的節點以獲取我想要的數字,只有未讀的項目總數。以下是Google提供的XML響應的基本結構:基本PHP SimpleXML用法問題

<object> 
    <number name="max">1000</number> 
    <list name="unreadcounts"> 
     <object> 
      <string name="id">user/0583/state/com.google/reading-list</string> 
      <number name="count">14</number> 
      <number name="newestItemTimestampUsec">1283782532883071</number> 
     </object> 
     <object> 
      <string name="id">/feed/url</string> 
      <number name="count">2</number> 
      <number name="newestItemTimestampUsec">1283782532881456</number> 
     </object> 
    </list> 
</object> 

如何使用SimpleXML獲取14號數字?列表中可能有數量不可知的對象,可能會繼續閱讀列表對象。實質上,我希望計數的值在id爲user/0583/state/com.google/reading-list。

我想使用PHP.net上的例子,但他們不使用這個字符串name =「id」約定。

回答

1

正確XPath來獲得與數14:

$myID = 'user/0583/state/com.google/reading-list'; 
$path = "//object[string[@name='id'] = '$myID']/number[@name='count']"; 

XPath表達式然後可以供給到SimpleXML's xpath() method。從文檔:

返回一個數組SimpleXMLElement對象或FALSE在出現錯誤的情況下。

+0

+1 ..我忽略了正確地解析問題並給了他錯誤號碼的路徑哈哈。 – prodigitalson 2010-09-06 16:07:55