2017-04-24 2 views
1

Ich möchte einen Inhalt einer HTML-Zeichenfolge, die von einem SimpleXML stammt, mit PHP greifen.Wie kann man mit XPATH in PHP nur einen HTML-Inhalt aus denselben Klassen abrufen?

So habe ich eine XML-Datei, wo ich schon die HTML-Zeichenfolge aus einem Description-Tag. Diese HTML-Zeichenfolge enthält einige divs, die ich nicht benötige. Ich möchte nur einen expliziten Inhalt von einem Pfad holen, den ich kenne.

Ich las durch verschiedene ähnliche Fragen, konnte aber mit XPATH keine geeignete Lösung finden und versuchte verschiedene Methoden ohne den gewünschten Erfolg.

So ist die ganze HTML-String ist folgender:

<div class="field field-name-field-image field-type-image field-label-hidden"> 
    <div class="field-items"> 
     <div class="field-item even"> 
      <a href="/content/menschen"></a> 
     </div> 
    </div> 
</div> 

<div class="field field-name-body field-type-text-with-summary field-label-hidden"> 
    <div class="field-items"> 
     <div class="field-item even"> 
      <p>**GRAB JUST THIS TEXT**</p> 
     </div> 
    </div> 
</div> 

<div class="field field-name-field-tags field-type-taxonomy-term-reference field-label-above"> 
    <div class="field-label">Tags:&nbsp;</div> 
    <div class="field-items"> 
     <div class="field-item even"> 
      <a href="/tags/louise">Louise</a> 
     </div> 
     <div class="field-item odd"> 
      <a href="/tags/gray">Gray</a> 
     </div> 
     <div class="field-item even"> 
      <a href="/taxonomy/term/3016">Buch</a> 
     </div> 
     <div class="field-item odd"> 
      <a href="/tags/rezension">Rezension</a> 
     </div> 
     <div class="field-item even"> 
      <a href="/tags/richtig">Richtig</a> 
     </div> 
    </div> 
</div> 

Wie würden Sie dieses Problem lösen, wenn es dieselben Klassen mit dem gleichen Namen?

Vielen Dank im Voraus.

Antwort

3

Ich denke, Sie verwenden können:

$dom = new DOMDocument(); 
$dom->loadHTML($html); 
$xpath = new DOMXPath($dom); 

print $xpath->query('//div[contains(@class,"field-item even")]/p')[0]->textContent; 
# **GRAB JUST THIS TEXT** 

PHP DEMO

+0

Thanks a lot. Das ist es. – John

+0

Sie sind herzlich willkommen @John –

Verwandte Themen