Joomla bietet bereits diverse Funktionen zur Arbeit mit XML-Dateien, weil z.B. die Konfigurationsdateien für Module, Plugins und Komponenten als XML-Dateien bereitgestellt und ausgewertet werden aber auch die Installationsanweisungen in den Installationspaketen in als XML-Dateien vorliegen.

JApplicationHelper (libraries/joomla/application/helper.php)



So werden beispielsweise in der administrator/components/com_modules/controler.php die Daten aus der Konfigurations-XML-Datei eingelesen und in die Variable $params gelegt:

controller.php Funktion edit()
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
		// xml file for module
if ($row->module == 'custom') {
$xmlfile = JApplicationHelper::getPath( $path, 'mod_custom' );
} else {
$xmlfile = JApplicationHelper::getPath( $path, $row->module );
}
 
$data = JApplicationHelper::parseXMLInstallFile($xmlfile);
if ($data)
{
foreach($data as $key => $value) {
$row->$key = $value;
}
}
 
// get params definitions
$params = new JParameter( $row->params, $xmlfile, 'module' );

Alternative zu diesen J!-Werkzeugen, besteht auch die Möglichkeit direkt mit den XML-Classen von PHP zu arbeiten. Dafür kämen 4 in Frage:

  • XML Parser Erweiterung (parst XML-Dokumente, ohne Prüffunktionen. Hiermit kann man XML-Parser realisieren und für die Handlers für die verschiedenen XML-Elemente definieren. Jeder XML-Parser hat ein paar konfigurierbare Parameter)
  • XMLReader-Erweiterung (fortschreitender Parser der mit einem Zeiger einen Datenstrom durchläuft und "vorbeikommende" Knoten der Reihe nach verarbeitet.)
  • SimpleXML (einfache Klasse für die Arbeit mit XML, aber nicht geeignet für komplizierte Strukturen)
  • XML-RPC (diese ist von PHP aus noch in der experimentellen Phase und dient zur Realisierung von RCP-Clients und -Servern)