Hallo,

Ik ben bezig met een CMS systeem, hier wil ik graag een template systeem bij. Ik wil in een XML bestand de info van de template uitlezen. Ik wil dat dit op elke server kan die php5 of hoger gebruikt. Ik heb even gezocht, maar dat is niet bij elke mogelijk. Weet iemand een manier?
Welke problemen kom je dan zoal tegen?
ik vind geen script die zonder verplichtingen op een server werkt
Volgens mij wordt PHP:DOM (deze) standaard met PHP 5 geleverd (in plaats van de W3C DOM implementatie)

Verder is de XML Parser volgens mij redelijk gemeen goed. Geen idee of hij werkelijk standaard is, maar ik kom hem wel overal tegen.
ok, ik heb nu dit:

XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<install>
	<files>
		<file>index.php</file>
	</files>
</install>
PHP:
<?php
  // DOMElement->getElementsByTagName() -- Gets elements by tagname
  // nodeValue : The value of this node, depending on its type.
  // Load XML File. You can use loadXML if you wish to load XML data from a string

  $objDOM = new DOMDocument();
  $objDOM->load("templates/pointspace/pointspace.xml"); //make sure path is correct


 
  

  print_r($objDOM);


?> 
	


bij de print r krijg ik nu: DOMDocument Object ( ), het werkt dus niet
[php]var_dump[/php]() geeft meer informatie dan print_r() geloof ik.
Error reporting op e_all?
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
?>
ja, maar hij doe het wel, maar ik krijg de inhoud niet van het xml bestand
Probeer eens XPath, dat is op zich vrij handig
<?php
$xpath = new DOMXPath($objDOM);
foreach($xpath->query('//install/files/file') as $file) {
echo '<li>' . $file->nodeValue . '</li>';
}
?>
@Jelmer: dat werkt, maar ik wil bijvoorbeeld ook bij sommige file start="start"er bij kunnen zetten.

@jezper: dat geeft object(DOMDocument)#6 (0) { }
Je kan met XPath veel meer dan alleen dom nodes selecteren, je kan ook filteren op attributen, je kan tellen maar je kan geen wijzigingen in de XML maken.

Verder kan je op DOMDocument de "gewone" W3C methods loslaten zoals je ze ook wel kent uit Javascript. $objDOM->getElementsByTagName('file') levert hetzelfde (nu nog iig) op als $xpath->query('//install/files/file')

Reageren