2011-12-04 37 views
2

我如何獲得a元素的內部文本與文本標題簡單的HTML DOM - (直接)子選擇器

我試圖與$html->find('#someid p > a'),但它包括所有嵌套後裔a元素。

<div id="someid"> 
    <tr>... Same structure ...<tr> 
    <tr> 
     <td> 
      <p> 
       <a href="#">Title</a> 
       <br> 
       <span class="someClass"> 
        <a href="#">text1</a> 
        <a href="#">text2</a> 
        <a href="#">text3</a> 
        <a href="#">text4</a> 
       </span> 
      </p> 
      <p>text5</p> 
     </td> 
     <td>text6</td> 
    </tr> 
    <tr>...<tr> 
</div> 
+0

通過你想要什麼標準來選擇它 - 它是第一個'了'或'含有Text'? –

+0

是第一個 –

回答

-1

嘗試:

 
$e = $html->find(''#someid p > a', 0); 
//or type first_child 
+0

看起來確定,只有第一個被返回,但我怎樣才能獲得無損文本? –

+0

這適用於我的情況$ e = $ html-> find('#someid p> a',0) - > innertext; –

+2

只是爲了讓其他人清楚:子選擇器似乎不適用於Simple HTML DOM。這個解決方案起作用的原因是它僅僅挑選了五場比賽中的第一場。將期望的目標放置在'span.someClass'之後,它不會起作用,並且只會返回'span.someClass'內的第一個''。 – maryisdead

0

您是否嘗試過使用filter(':first')filter(':first-child')?您也可以嘗試使用->firstChild查找。

我假設你需要第一個後代。否則,你可以考慮使用一個id作爲特定的錨標記。

+0

似乎css選擇器不起作用 –

+0

是的。剛注意到這一點。我對此也比較陌生。 'firstChild'怎麼樣?那對你有用嗎? – Navneet