Problem bei XML-Daten einbinden

  • Was mache ich falsch:

    Ich habe in der Moduldatei den Aufruf zu einer XML-Datei. Mit dem folgenden absoluten Pfad läuft mein Modul.

    Mit dem unten angegebenen relativen Pfad nicht:


    <?php

    /**

    * @package Joomla.site

    * @subpackage mod_mv_anzeige

    * @copyright Copyright (C) 2005 - 2023 Open Source Matters, Inc. All rights reserved.

    * @license GNU General Public License version 2 or later; see LICENSE.txt

    * version 0.0.103

    */


    // no direct access

    \defined('_JEXEC') or die;


    use Joomla\CMS\Helper\ModuleHelper;

    use MvNamespace\Module\mv_anzeige\Site\Helper\MvAusgabe ;


    // absoluter Pfad zur XML-Datei

    $xml_file = 'http://xxxxxxxxxxx.de/dmv4/modules/mod_mv_anzeige/daten/mietvertrag.xml' ;


    // relativer Pfad zur XML-Datei

    $xml_file = './daten/mietvertrag.xml' ;


    // Laden der XML-Datei

    $xml = simplexml_load_file($xml_file) or die("->Fehler beim Laden der XML-Datei");


    $MVausgabeText = MvAusgabe::getMietvertrag($xml);


    require ModuleHelper::getLayoutPath('mod_mv_anzeige', $params->get('layout', 'default'));

    ?>

  • Danke für die hilfreiche Anregung.

    Aber das Problem schein grundlegender zu sein. Mit dem folgenden Code erhalte ich die Fehlermeldung, dass die Datei "mietvertrag.xml" nicht existiere, ob wohl sie im Verzeichnis "./datei/mietvertrag.xml" auf dem Server liegt.


    Gibt es irgendwelche restriktionen, die verhindern, dass das Modul auf eine XML-Datei zugreift ?


    Was muss ich ich beachten, damit innerhalb eines Modules eine XML-Datei eingebunden bzw. aufgerufen werden kann?


    Mein Code in der Manifest-Datei:



    Die zentrale mod_mv_anzeige.php:


    ... und die Helper-Datei:

  • Es gibt keine Restriktionen. Entweder ist deine Pfadangabe falsch oder die Datei ist nicht lesbar.


    Code
    './daten/mietvertrag.xml'

    bedeutet, die Datei liegt im Ordner

    Code
    /modules/mod_mv_anzeige/daten/

    aber dann kann man sich das einleitende

    Code
    ./

    sparen oder man erzwingt die Auflösung mit einem absoluten Pfad, was ich bevorzuge:

    Code
    __DIR__ . '/daten/mietvertrag.xml'

    Praktische Variablen sind oftmals auch z.B.

    Code
    JPATH_SITE

    was der absolute Pfad in den Joomla-ROOT ist, was ich noch mehr bevorzuge, weil man dann den Codeschnipsel leichter woanders hin verscheiben kann, wenn mal Bedarf ist..

    Code
    JPATH_SITE . '/modules/mod_mv_anzeige/daten/mietvertrag.xml'
  • Vielen, vielen Dank, das hat sehr geholfen!

    Man siehr ja oft den Wald nicht mehr vor lauter Bäumen.

    Fehlerhaft war also offensichtlich die Pfadangabe zur XML-Datei.


    Ich habe das Problem also jetzt mit

    Code

    Code
    $xml_file = JPATH_SITE . '/modules/mod_mv_anzeige/daten/mietvertrag.xml' ;

    gelöst:

    PHP