2017-04-13 6 views
0

Ich benutze PHP Simple DOM Parser librairy, und ich habe eine kleine Frage .. Ich muss ein HTML-Dokument zu analysieren, die wie ist :Wie bekomme ich den Text eines Knotens, ohne Kinder Text Knoten mit PHP Simple DOM Parser

<div> 
 
    here the text I want 
 
    <strong>another text</strong> 
 
</div>

ich würde gerne wissen, ob es nur zu bekommen den Text aus dem div-Tag (und nicht den Text aus dem starken Tag) möglich ist. Ist das möglich, automatisch (ohne Angabe des Ortes des Textes)?

Vielen Dank im Voraus,

Jordan.

Antwort

0

Sie konnten die Kinder des div Element erhalten, und suchen Sie nach Textknoten (die strong und andere Elemente ausschließen):

$html = "<div> 
    here the text I want 
    <strong>another text</strong> 
</div>"; 

$dom = new DOMDocument; 
$dom->loadHTML($html); 
$div = $dom->getElementsByTagName('div')[0]; 
$text = ""; 
foreach($div->childNodes as $node) { 
    if ($node->nodeType == XML_TEXT_NODE) $text .= $node->nodeValue; 
} 
echo trim($text); 

Wenn das Wurzelelement nicht immer div ist, konnte aber jedes Element sein ändern, dann die Zuordnung zu $ div wie folgt aus:

$div = $dom->getElementsByTagName('body')[0]->childNodes[0]; 
+0

Vielen Dank für Ihre Antwort! Ich habe vergessen, Ihnen zu sagen, dass der Wurzelknoten kein div-Tag ist, haben Sie eine Lösung für dieses Problem? Vielen Dank im Voraus – PUBJ

+0

Siehe den letzten Absatz, den ich gerade zu meiner Antwort hinzugefügt habe. – trincot

+0

Vielen Dank für Ihre Antwort! – PUBJ

Verwandte Themen