_
toggle menu eXmatrikulationsamt.de
online: 343 gäste

>PHP DomXPath die freaks sind gefragt

Themen Layout: Standard · Linear · [Outline] Thema abonnieren | Thema versenden | Thema drucken
post 02 Sep 2010, 16:41
avatar
fuk da hataz
*********

Punkte: 15000
seit: 27.05.2003

gegeben ist folgende datei "test.html"

CODE
<html>
<body>

<div id='a'>
    AAA1 <img src="bild1.jpg">
</div>

<div id='a'>
    <div id='b'>
         BBB1 <img src="bild2.jpg">
    </div>
    AAA2 <img src="bild3.jpg">
</div>

<div id='a'>
    AAA3
</div>

</body>
</html>


ich will NUR die inhalte aus den divs mit der id=a herausfiltern, inklusive der dazugehörigen bilder. ich habe dafür eine php-datei, die folgendermaßen aussieht:

CODE
<?php
$dom = new DOMDocument();
$dom->loadHTMLFile('test.html');

$xpath = new DOMXPath($dom);

$ergebnisse = $xpath->query("//div[@id='a']");

foreach ($ergebnisse as $ergebnis) {
    echo $ergebnis->nodeValue ."<br>";
    }
?>



das ergebnis soll so aussehen:

AAA1 bild1.jpg
AAA2 bild3.jpg
AAA3


sieht aber so aus:

AAA1
BBB1
AAA2
AAA3




basic problem:

ich bekomme als resultat AUCH die text-inhalte der b-divs, will aber NUR die der a-divs ohne kinder!

advanced problem:

die bilder werden nicht mit ausgegeben. das ginge mit
CODE
echo '<img src="'.$ergebnis->getAttribute('src').'" border="0">';

einzeln, soll aber zusammen passieren. ich will ja die texte der a-divs und dahinter sofort das entsprechende bild.


hat da jemand vielleicht einen guten tip?


--------------------
onkelroman war hier
ProfilPM
AntwortenZitierenTOP
Beiträge
onkelroman   PHP DomXPath   02 Sep 2010, 16:41
onkelroman   ja, man kann mit hasChildNodes() abfragen, ob nach...   02 Sep 2010, 17:03
Stormi   Ginge auch //div[@id='a']/node()[not(@id=...   02 Sep 2010, 19:12
I.I   ja das geht auch ....   02 Sep 2010, 23:19
onkelroman   ich verzweifel hier grad. schaut euch das an, ich ...   01 Nov 2010, 14:03
onkelroman   ach.. ich hab den fehler. posts stehen innerhalb e...   01 Nov 2010, 14:16
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: