problem mit dem auslesen von attributen

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

  • problem mit dem auslesen von attributen

    meine xml datei sieht vereinfacht folgerndermaßen aus:

    PHP-Code:
    <contents>
     <
    inhalt id="1">
       <
    titel>blablabla</title>
     </
    inhalt>
     <
    inhalt id="1_2">
       <
    title>dfsdfsdf</title>
     </
    inhalt>
    </
    contents

    die datei lese ich so ein:

    PHP-Code:
    $xml simplexml_load_file('meta/meta.xml'); 
    den pfad lege ich so fest:
    PHP-Code:
    $pfad ="/contents/inhalt[@id='".$content_id."']"
    ausgabe erfolgt so:

    PHP-Code:
    if (!$content $xml->xpath($pfad)) {echo "Keine Daten vorhanden";} else {echo $content[0]->titel;} 
    jetzt zu meinem problem:
    wenn die content_id 1 ist, funktioniert das auslesen vom titel!
    wenn die content_id jedoch 1_2 ist, kommt folgende fehlermeldung:
    <b>Warning</b>: SimpleXMLElement::xpath() [<a href='function.xpath'>function.xpath</a>]: Invalid predicate in .....


    woran könnte das liegen?????

    stundenlanges googlen und nachlesen hat mir nicht geholfen bis jetzt.

    wo wir schonmal dabei sind....
    trotz encoding="ISO-8859-1" werden die umlaute in der xml später bei der ausgabe nicht korrekt dargestellt.

  • #2
    Die Fehlermeldung sagt ja was das Problem ist: das Prädikat (das, was in den eckigen Klammern steht).
    Mach doch mal ein echo $pfad, bevor du die XPath-Anfrage ausführst.

    Das Ergebnis sollte ja irgendwie so aussehen:
    Code:
    /contents/inhalt[@id='1_2']
    Das ist meinem Verständnis nach aber durchaus ok (oder hab ich da jetzt Tomaten auf den Augen?).
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

    Kommentar


    • #3
      hm......

      komisch.

      hier bei mir zuhause lokal funktioniert es.

      also liegt es nicht am code. soviel steht schonmal fest. woran könnte es liegen???

      Kommentar


      • #4
        Zu allererst natürlich an den unterschiedlichen PHP-Versionen? Mir ist zwar nicht bewusst, dass irgendwas in der Richtung in letzter Zeit geändert wurde, aber sein kann's schon.

        Welche Versionen ist denn bei dir zu Hause und welche auf dem Server?
        "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

        Kommentar


        • #5
          zuhause: 5.1.1
          server: 5.1.2
          -------------------------------
          libXML support active
          libXML Version 2.6.22
          libXML streams enabled

          libXML support active
          libXML Version 2.6.11
          libXML streams enabled
          -------------------
          SimpleXML

          Revision $Revision: 1.151.2.7 $
          Schema support enabled

          Revision $Revision: 1.151.2.10 $
          Schema support enabled
          --------------------------
          XML Support active
          XML Namespace Support active
          libxml2 Version 2.6.22

          XML Support active
          XML Namespace Support active
          libxml2 Version 2.6.11
          ---------------------------------


          das wären mal so ein paar sachen. zuhause steht immer an erster stelle.
          also große unterschiede sehe ich da nicht.

          Kommentar

          Lädt...
          X