SimpleXML und DTD

bandsite

Mitglied
Hallo,
Ich bin dabei XML Dateien per SimpleXML auszulesen, funktioniert ja auch recht simpel. Allerdings verwende ich innerhalb der XML Datei auch Umlaute, deshalb habe ich eine .dtd erstellt, die die notwendigen entities enthält.

PHP:
/* Die .xml */

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC "module" "schema.dtd">
<module>
	<name>
		overview
	</name>
	<tooltip>
		Helptext
	</tooltip>
</module>

/* die .dtd */

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY auml "&amp;auml;">
<!ENTITY ouml "&amp;ouml;">
<!ENTITY uuml "&amp;uuml;">
<!ENTITY Auml "&amp;Auml;">
<!ENTITY Ouml "&amp;Ouml;">
<!ENTITY Uuml "&amp;Uuml;">
<!ENTITY szlig "&amp;szlig;">

/* die .php */

$xml = simplexml_load_file('module.xml');
	
echo '<pre>';
print_r($xml);
echo '</pre>';

Es gibt einen Parameter für SimpleXML der das berücksichtigen der .dtd ermöglichen soll, ich komme aber nicht dahinter, wie man das benutzen soll:

LIBXML_DTDLOAD (integer), Load the external subset.

Ich habe schon so versucht:
PHP:
$xml = simplexml_load_file('module.xml', LIBXML_DTDLOAD(1));

Da bekomme ich die Fehlermeldung:
Fatal error: Call to undefined function LIBXML_DTDLOAD() in E:\server\xampp\htdocs\projects\eftex3\index.php on line 10

Hat das jemand erfolgreich nutzen können?, wie?

Danke, BS
 
„LIBXML_DTDLOAD“ ist keine Funktion sondern eine Konstante und kann als dritter Parameter angegeben werden:
PHP:
$xml = simplexml_load_file('module.xml', null, LIBXML_DTDLOAD);
 
Zurück