xml -> xpath -> starts-with => Problem!

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

  • xml -> xpath -> starts-with => Problem!

    Moin Moin!

    Ich steh auf dem Schlauch, komm nicht weiter und find den Fehler einfach nicht.

    myxml.xml:
    Code:
    <?xml version='1.0' encoding='UTF-8'?>
    <feed xmlns='http://www.w3.org/2005/Atom'>
      <entry>
        <id>p123</id>
        <title type="text">10 Nonnen</title>
        <summary>Tolles Buch...</summary>
      </entry>
      <entry>
        <id>q456</id>
        <title type="text">12 Tage</title>
        <summary>Sehr tolles Buch...</summary>
      </entry>
    </feed>
    PHP-Code:
    <?php
    $source 
    "myxml.xml";
    $xml simplexml_load_file($source);
    $result $xml->xpath('//entry[starts-with(title, "1")]');
    foreach (
    $result as $entry) {
        
    $title $entry->title;
        
    $summary $entry->summary;
        echo 
    $title;
        echo 
    $summary;
    }
    ?>
    Aus der XML-Datei sollen alle Einträge gefilter, deren Titel mit "1" anfängt.
    Es passiert aber: Nix. Nicht mal eine Fehlermeldung.

    Trotz diverser Tuts, Foren und Schreibweisen, kann ich einfach den Fehler nicht finden...
    Wäre für jeden Tipp echt dankbar!!

    Cheers und Danke im Voraus,
    imafox

  • #2
    Hallo,

    sieht so aus, als hättest du vergessen, den namespace anzugeben: PHP: SimpleXMLElement::registerXPathNamespace - Manual

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Danke für die schnelle Antwort!
      Hab ich einen schwerwiegenden Verständnisfehler? Namespaces kommen doch hier gar nicht vor, oder?!

      Also, hab Namespaces immer so verstanden, wie auch am Beispiel im PHP-Manual aufgeführt:
      Code:
      <chap:title>Chapter 2</chap:title>
      Bin gerade vollends irritiert...
      Habe aber mal...
      Code:
      $xml->registerXPathNamespace('atom','http://www.w3.org/2005/Atom');
      ...unter der load_file-Zeile eingefügt - leider ohne Erfolg.
      Das Ergebnis ist nach wie vor eine weisse Seite.

      Mit dank und Gruß,
      imafox

      Kommentar


      • #4
        Zitat von imafox Beitrag anzeigen
        Hab ich einen schwerwiegenden Verständnisfehler?
        Naja, schwerwiegend vielleicht nicht.

        Zitat von imafox Beitrag anzeigen
        Namespaces kommen doch hier gar nicht vor, oder?!
        Doch:
        HTML-Code:
        <feed xmlns='http://www.w3.org/2005/Atom'>
        Zitat von imafox Beitrag anzeigen
        Also, hab Namespaces immer so verstanden, wie auch am Beispiel im PHP-Manual aufgeführt
        So benutzt man mehrere Namespaces in einem Dokument, deins hat aber trotzdem einen Namespace.

        Zitat von imafox Beitrag anzeigen
        Das Ergebnis ist nach wie vor eine weisse Seite.
        Dann musst du aber den XPath auch so schreiben:
        Code:
        //atom:entry[starts-with(atom:title, "1")]
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Ich glaub's nicht!!!
          Weiss gar nicht was ich sagen soll, bin echt überwältigt! :-D

          Ein SUPERFETTES DANKESCHÖN!!!

          Cheers und Prost auf Dich,
          imafox

          Kommentar

          Lädt...
          X