Ankündigung

Einklappen
Keine Ankündigung bisher.

xpath Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • xpath Problem

    Hi,

    bei auslesen aus einer xml datei bekommen ich den ersten wert nich! also ich hab folgende xml datei:
    [/code]
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <benutzer>
    <admin>
    <main href="./tasks/tasks.php">Tasks</main>
    <sub>Projekt</sub>
    <sub>Seminare</sub>
    <sub>Veranstaltungen</sub>
    <main href="./adressen/adressen.php">Adressen</main>
    <sub>Schulen</sub>
    <sub>Lehrer</sub>
    <sub>Organisationen</sub>
    <sub>freie Mitarbeiter</sub>
    <main href="./kalender/kalender.php">Kalender</main>
    <sub>Tasks</sub>
    <sub>Räume</sub>
    <main href="./berichte/berichte.php">Berichte</main>
    <main href="./verwaltung/verwaltung.php">Verwaltung</main>
    <sub>Benutzer</sub>
    </admin>
    <betreuer>
    <main href="./tasks/tasks.php">Tasks</main>
    <sub>Projekt</sub>
    <sub>Seminare</sub>
    <sub>Veranstaltungen</sub>
    <main href="./adressen/adressen.php">Adressen</main>
    <sub>Schulen</sub>
    <sub>Lehrer</sub>
    <sub>Organisationen</sub>
    <sub>freie Mitarbeiter</sub>
    <main href="./kalender/kalender.php">Kalender</main>
    <sub>Tasks</sub>
    <sub>Räume</sub>
    <main href="./berichte/berichte.php">Berichte</main>
    </betreuer>
    <lehrer>
    <main href="./tasks/tasks.php">Tasks</main>
    <sub>Projekt</sub>
    <sub>Seminare</sub>
    <sub>Veranstaltungen</sub>
    <main href="./kalender/kalender.php">Kalender</main>
    <sub>Tasks</sub>
    <sub>Räume</sub>
    </lehrer>
    </benutzer>
    [/code]

    und lese sie wie folgt aus:

    PHP-Code:
    $xml = new DomDocument();
    $xml->load('../lib/info/menu.xml')
        
    $xp = new domxpath ($xml);
    $pfad = "/benutzer/".$usrRight."/main";
    echo 
    $pfad."  ";
    $mnuinfo = $xp->query($pfad);        

    foreach(
    $mnuinfo as $key => $node) {
        
    $this->mnuArr[$key]=$node->textContent;
        
    $this->attArr[$key]=$node->getAttribute('href');                
    } 
    soweit so gut, nur wenn ich mir das array anschaue beginnt die ganze Sache nur mit den eintrag Adressen anstelle mit Tasks.

    infos am Rande $usrRight ist auf admin gesetzt und das ganze $this zeug ist, weil es sich um eine Funktion in einer kalsse handelt.

    lg

  • #2
    Überlege einmal warum. Der Eintrag "Adressen" passt, der andere nicht. Wenn du den Betreuer haben willst, müsstest du logischerweise $usrRight auf "Betreuer" setzen oder deinen XPath anders formulieren.

    Kommentar


    • #3
      Hi,

      mepeisen:
      Überlege einmal warum. Der Eintrag "Adressen" passt, der andere nicht.

      genau das ist der Punkt - ich sehe es nicht warum der Eintrag Tasks nicht passt.

      mepeisen:
      Wenn du den Betreuer haben willst, müsstest du logischerweise $usrRight auf "Betreuer" setzen

      das ist auch der Grund warum ich es so geschrieben habe. das Menü soll daynamisch generiert werden in abhänigheit des User-Typen. also unterschiedlich für Admin, Betreuer und Lehrer.

      lg

      Kommentar


      • #4
        Mittels XPath gibst du den Suchpfad in deinem XML an. Dein Suchpfad ist aktuell:
        "benutzer/admin/main", wenn ich dich richtig verstehe. Also findet er alles unter "admin" und nicht das unter "betreuer". Dazu müsste der Suchpfad "benutzer/betreuer/main" heissen, oder?

        Kommentar


        • #5
          ja das ist Richig, da es drei Benutzerarten gibt. in der Var $usrRight ist der Typ gescheichert und abhängig von dem Typ der der Suchpfad im XPaht erzeugt.

          Kommentar


          • #6
            Re: xpath Problem

            Zitat von comus
            soweit so gut, nur wenn ich mir das array anschaue beginnt die ganze Sache nur mit den eintrag Adressen anstelle mit Tasks.

            infos am Rande $usrRight ist auf admin gesetzt und das ganze $this zeug ist, weil es sich um eine Funktion in einer kalsse handelt.

            lg
            Ich sehe dein Problem nicht. Wenn du in $usrRight 'admin' stehen hast, wieso erwartest du dann, dass er irgendwas mit Tasks findet, was vollkommen woander ist?

            Kommentar


            • #7
              er fängt erst beim zweiten <main> an als
              <main href=...>Tasks</main> bekomme ich nicht heraus sonder der erste node in der Liste ist <main href=...>Adressen</main>

              lg

              Kommentar


              • #8
                Sorry, da habe ich mich die ganze Zeit verguckt..... Sehe auf den ersten Blick da eigentlich keinen Fehler. Ich denke mich nachher noch einmal rein, vielleicht sehe ich dann was.

                Kommentar


                • #9
                  Hi,

                  Problem gelöst!!! war ein php-bug denke ich. da ich keinen Fehler im Script gefunden habe, hab ich mal mein xampp upgedatet. siehe da es funktioniert alles einwandfrei.

                  danke für deine Unterstützung

                  lg

                  Kommentar

                  Lädt...
                  X