2010-09-30 48 views
2

前一個問題,用戶幫我,但我堅持做簡單的要求:的XPath查詢問題

<?php $nodes = $xPath->query('//table[@class="some_class"]'); 

但它返回我的整個表DATAS而不是錶行,這就是爲什麼我想僅檢索表格的「td」。

我tryed(但它不工作

<?php $nodes = $xPath->query('//table[@class="some_class"]/tbody/tr'); 

什麼我做錯了嗎?

* 編輯HTML結構*

<table class="some_class"> 
<tbody><tr> 
<td class="firstcol" width="160">name</td> 
<td width="250">Some&nbsp;Data</td> 
</tr> 
+0

請發佈您正在使用的HTML,以便我們瞭解確切的結構。 – Oded 2010-09-30 19:10:58

+0

沒有輸入樣本,只能猜測......'// table [@ class =「some_class」] // td' – 2010-09-30 19:12:07

+0

請確保在class屬性中只有some_class而不是some_class和some_other_class。否則你將不得不使用'contains'功能。 – Gordon 2010-09-30 19:13:07

回答

5
//table[@class='some_class']//td 

在那裏增加了一箇中間//,因爲我對tbody的任何級別的不信任實際上在那裏(雖然他們應該是DOM)。

+0

謝謝你的工作 – 2010-09-30 19:13:38

1

假設路徑正確匹配,你可能只需要追加/ *匹配所有子節點:

//table[@class="some_class"]/tbody/tr/*

+0

arg,無法正常工作,我更新了我的帖子並提供了更多信息。謝謝 – 2010-09-30 19:10:00

+0

@Tristan - 「不工作」應該是一個紅旗,上面寫着「你怎麼知道它不工作?分享這些信息。」例如。 $ xPath-> query()返回什麼值? – LarsH 2010-09-30 19:14:03

+0

我懷疑_if_它不工作,這是因爲OP使用類似firebug /另一個DOM HTML演示工具來查看HTML,它顯示了一個'',但正在使用頁面的源代碼,其中 '不存在... – Wrikken 2010-09-30 19:18:37