Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
xml -> xpath -> starts-with => Problem! [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-consult PHP Entwicklung
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
xml -> xpath -> starts-with => Problem!


 
imafox
13-08-2010, 22:47 
 
Moin Moin!

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

myxml.xml:

<?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
$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

 
AmicaNoctis
13-08-2010, 22:58 
 
Hallo,

sieht so aus, als hättest du vergessen, den namespace anzugeben: PHP: SimpleXMLElement::registerXPathNamespace - Manual (http://de3.php.net/manual/de/simplexmlelement.registerXPathNamespace.php)

Gruß,

Amica

 
imafox
13-08-2010, 23:31 
 
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:
<chap:title>Chapter 2</chap:title>

Bin gerade vollends irritiert...
Habe aber mal...

$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

 
AmicaNoctis
13-08-2010, 23:38 
 
Hab ich einen schwerwiegenden Verständnisfehler?

Naja, schwerwiegend vielleicht nicht.

Namespaces kommen doch hier gar nicht vor, oder?!

Doch:
<feed xmlns='http://www.w3.org/2005/Atom'>

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.

Das Ergebnis ist nach wie vor eine weisse Seite.

Dann musst du aber den XPath auch so schreiben:
//atom:entry[starts-with(atom:title, "1")]

 
imafox
13-08-2010, 23:53 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:58 Uhr.