2011-12-10 57 views
2

我試圖從使用一個表中的數據...PHP DOM-的XPath上表

$tags = $xpath->query('//tr[@valign="top"]/td/span[@style="background-color:#cccccc;font-weight:bold;"]'); 

行上,看起來像......

<tr valign="top"> 
       <td style="background-color:#cccccc;"><span style="background-color:#cccccc;font-weight:bold;">Some Company</span> 

但它不是檢索數據,它使用螢火蟲DOM檢查器...使用xpath ...

 $tags = $xpath->query('//tr[@valign="top"]/td/span'); 

工作,但它拉扯其他不想要的數據。 有什麼建議嗎?

回答

1

是否有可能與這些style屬性有一些排序/格式問題?請嘗試以下操作:

//tr[@valign="top"]/td/span[contains(@style, 'background-color:#cccccc') and 
          contains(@style, 'font-weight:bold')] 

你也嘗試基於該單元格的內容選擇(假設值是唯一的):

//tr[@valign="top"]/td/span[.='Some Company'] 

或(較少限制):

//tr[@valign="top"]/td/span[contains(., 'Some Company')] 
+0

該值不是唯一的,它是一個列表,所以我需要每個錶行的節點。我試過你的第一個例子無濟於事。單引號或雙引號重要嗎? PHP不會讓我在它前面使用'沒有'。我不能看到任何訂購/格式問題,因爲我複製了上面的行,因爲它顯示在頁面源上。 – savagenoob

+0

@savagenoob - 從* actual *源複製,或從Firebug展示給你的? –

+0

@savagenoob - 另外,你有沒有嘗試按位置選擇? '// tr [@ valign =「top」]/td/span [1]' –