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

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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]

    Comment


    • #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

      Comment


      • #4
        Originally posted by imafox View Post
        Hab ich einen schwerwiegenden Verständnisfehler?
        Naja, schwerwiegend vielleicht nicht.

        Originally posted by imafox View Post
        Namespaces kommen doch hier gar nicht vor, oder?!
        Doch:
        HTML Code:
        <feed xmlns='http://www.w3.org/2005/Atom'>
        Originally posted by imafox View Post
        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.

        Originally posted by imafox View Post
        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]

        Comment


        • #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

          Comment

          Working...
          X