phpDOM
Geïnspireerd door wat Jelmer voor Community Coding had geschreven (twee klasses voor de DOM), heb ik deze set klassen geschreven. Deze set is wat algemener en is dus in staat om naast valide XHTML ook gewoon XML te creëeren.
Overigens heeft Jelmer hier een mooie klasse voor de DOM ((X)HTML/PHP 5). (Overigens is dat Community Coding) Ik heb die klassen niet echt goed bekeken, maar op het eerste oog zijn ze best mooi =).
Er zit nu ook rephpDOM bij, een klasse die phpDOM objecten genereert aan de hand van XML.
URL: http://www.legolasweb.nl/content/view/68/29/
Voorbeeld #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
32
33
34
35
36
37
// Logisch ;)
require_once 'phpdom.php';
// Maak een pagina, het is XHTML, dus true
$page =& new phpDom(true);
// Voeg daar een head sectie aan toe
$head =& new Element('head');
$page->root->appendChild($head);
// Met een titel =)
$title =& new Element('title');
$head->appendChild($title);
// En natuurlijk moet de titel ook echt tekst bevatten
$text =& new TextNode('Test page');
$title->appendChild($text);
// Vervolgens voegen we een body element toe
$body =& new Element('body');
$page->root->appendChild($body);
// In de body sectie komt een div, met een id attribuut
$div =& new Element('div');
$body->appendChild($div);
$div->setAttribute('id', 'content');
// Dan stoppen we ook nog wat tekst in de div
$innerdiv =& new TextNode('Test =)');
$div->appendChild($innerdiv);
// Tenslotte tonen we de pagina (true laat hem returnen)
$page->display(false);
?>
Voorbeeld #2:
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
32
33
34
35
36
37
38
// Weer logisch... =P
require_once 'phpdom.php';
// XML Content-Type header
header('Content-Type: text/xml');
// Nu maken we een gewone pagina
$page =& new phpDom(false);
// Dat betekent ook dat hij nog geen basis-element heeft, dus die maken we nu
$root =& new Element('root');
$page->setRoot($root);
// Laten we er even wat items in stoppen
for ($i = 0; $i < 5; $i++) {
// Om te beginnen maken we het item
$item =& new Element('item');
$root->appendChild($item);
// Vervolgens een titel met wat zinloze tekst
$title =& new Element('title');
$item->appendChild($title);
$text =& new TextNode('Item #' . ($i + 1));
$title->appendChild($text);
// Hetzelfde voor een beschrijving
$description =& new Element('description');
$item->appendChild($description);
$text =& new TextNode('This is item #' . ($i + 1));
$description->appendChild($text);
}
// En weer de pagina echo'en
$page->display(false);
?>
Voorbeeld #3:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Wat zal ik eens zeggen =P
require_once 'phpdom.php';
require_once 'rephpdom.php';
// XML Content-Type header
header('Content-Type: text/xml');
// Nu gaan we terug bouwen vanaf XML dus hebben we een rephpDOM object nodig
$re =& new rephpDOM();
// Even wat XML laden (hier uit een bestand, maar setXML('<xml></xml>') kan ook)
$re->setXMLFromFile('example3.xml');
// En doe je ding =)
$re->parse();
// Vervolgens kunnen we het phpDOM object ophalen
$page =& $re->page;
// En alsnog weergeven =P
$page->display(false);
?>
Gesponsorde koppelingen
PHP script bestanden
Er zijn 7 reacties op 'Phpdom'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu