Hallo,
Ik probeer al een paar uur het volgende te doen:
Er is een bronpagina met de volgende structuur:
Nu zou ik die pagina graag wat lichter maken, om ze te bekijken op mijn Palm. Het grote menu enzo interesseert me dan niet echt. Ik zou enkel de content willen.
Ik heb in php het volgende bijeengeknutseld om hier voor te zorgen:
Wat ik op voorhand nog niet wist was dat een nodeValue enkel tekst output. Mijn output is dus:
Niet echt vriendelijk om te lezen dus.
Mijn doel was om de html code binnen de div over te houden, zoals:
Hierna ben ik wat op het internet gaan zoeken maar ik vond niet direct een oplossing Hier hebben ze ongeveer hetzelfde probleem EN een oplossing.
Dus, zou er iemand de 'foreach' methode kunnen uitleggen, een andere methode kunnen toelichten, me laten weten dat het onmogelijk is, ... ?
Alvast bedankt
Ik probeer al een paar uur het volgende te doen:
Er is een bronpagina met de volgende structuur:
HTML: nieuws.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl"> <head> <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> <link rel="stylesheet" href="style.css" type="text/css" media="screen" /> <title>Artikel 1</title> </head> <body> <div id="navigation"> <ul> <li>Home</li> <li>Links</li> <li>About</li> </ul> </div> </div> <div id="content"> <h1>Title</h1> <h2>Intro</h2> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent adipiscing. </p> <a href="link.htm">Linkje</a> <h2>Mooie titel</h2> <p> Phasellus sollicitudin pellentesque turpis. Proin auctor vulputate leo. </p> </div> </body> </html> |
Nu zou ik die pagina graag wat lichter maken, om ze te bekijken op mijn Palm. Het grote menu enzo interesseert me dan niet echt. Ik zou enkel de content willen.
Ik heb in php het volgende bijeengeknutseld om hier voor te zorgen:
PHP: code.php
1
2
3
4
5
6
| <?php $url = 'nieuws.htm'; $doc = new DOMDocument(); $doc->LoadHTMLFile($url); print $doc->getElementById( 'content' )->nodeValue; ?> |
Wat ik op voorhand nog niet wist was dat een nodeValue enkel tekst output. Mijn output is dus:
code:
1
| TitleIntroLorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent adipiscing.LinkjeMooie titePhasellus sollicitudin pellentesque turpis. Proin auctor vulputate leo. |
Niet echt vriendelijk om te lezen dus.
Mijn doel was om de html code binnen de div over te houden, zoals:
HTML:
1
2
3
4
5
6
7
8
9
10
| <h1>Title</h1> <h2>Intro</h2> <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent adipiscing. </p> <a href="link.htm">Linkje</a> <h2>Mooie titel</h2> <p> Phasellus sollicitudin pellentesque turpis. Proin auctor vulputate leo. </p> |
Hierna ben ik wat op het internet gaan zoeken maar ik vond niet direct een oplossing Hier hebben ze ongeveer hetzelfde probleem EN een oplossing.
Maar ik ben nog niet zo ervaren op het gebied van php om te zien wat hier precies gaande is en ik kan het ook niet reproduceren.Nothing: nodeValue is the concatenation of the value portion of the tree, and will never have tags.
What I would do to make an HTML fragment of the tree under $node is this:
PHP:
1 2 3 4 5 $doc = new DOMDocument(); foreach($node->childNodes as $child) { $doc->appendChild($doc->importNode($child, true)); } return $doc->saveHTML();
Dus, zou er iemand de 'foreach' methode kunnen uitleggen, een andere methode kunnen toelichten, me laten weten dat het onmogelijk is, ... ?
Alvast bedankt
[ Voor 6% gewijzigd door demichiel op 12-03-2009 22:48 . Reden: Verduidelijking ]