2010-12-10 5 views
0

Ich habe eine Frage zu simplehtmldom. Wie kann ich einen Text eines bestimmten Elements erhalten, das ein next_sibling eines anderen Elements ist, das einen bestimmten Text enthält?php simhehtmldm Problem

zum Beispiel:

Ich habe HTML Text wie folgt aus:

<div> 
<table> 
    <tr> 
    <td>prova</td> 
    <td>pippo</td> 
    </tr> 
</table> 
</div> 

und ich brauche den Text des zweiten "td" .Consider zu extrahieren, die ich weiß, dass der Wert "prova" a fester Wert. Ich dachte, dass ich diesen Code verwenden könnte:

echo $html->find("td:contains('prova')",0)->next_sibling(); 

aber "enthält" existiert nicht in simplehtmldom. Wie kann ich das tun?

Vielen Dank


Dank für Ihre Antwort, aber ich brauche Text von td neben td zu extrahieren, die den Text "prova" enthält.

Als Beispiel ich brauche den Wert „Pippo“ mit einem ähnlichen Code

echo $html->find("td:contains('prova')",0)->next_sibling()->innertext; 

zu extrahieren, weil ich den Wert der ersten Spalte kennen. Leider existiert die Funktion nicht in simplehtmldom.

Der Code

echo $html->find("td:innertext('prova')",0)->next_sibling(); 

nicht tut, ist der richtige Weg.

Haben Sie andere Vorschläge?

Dank

Antwort

1

versuchen diesen Code

<?php 
include_once "simple_html_dom.php"; 
// the html code loaded (in this case in string mode) 
$html = '<div> 
<table> 
    <tr> 
    <td>prova</td> 
    <td>pippo</td> 
    </tr> 
</table> 
</div>'; 

$dom = str_get_html($html); 
// the selector :contains isn't develop yet 
$tds = $dom -> find("td"); 
foreach($tds as $td){ 
    if ($td -> innertext == "prova"){ 
     echo $td -> next_sibling() -> innertext; 
    } 
} 
?> 
+0

Hallo Biancardi, ich weiß, dass ich foreach oh TDs Elemente verwenden können, aber ich möchte wissen, ob eine ähnliche Funktion wie jquery enthalten existiert. Danke für Ihre Antwort. – kl4us