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)
Frage zu xml_parse() [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 :
Frage zu xml_parse()


 
squirrelcgn
07-09-2007, 21:04 
 
Hallo zusammen,

ich verwende hier die xml_parse()-Funktion, um eine XML-Datei einzulesen. Das klappt auch alles ganz wunderbar mit den start, cdata und end-Tags.

Allerdings möchte ich jetzt etwas "mehr": es geht um die start-Tags. Ich möchte gerne, dass der Parser statt auf ein "einfaches" start-Tag (z.b. <location>...) auf ein detaillierter beschriebenes Tag (z.B. <location-id town-type="medium">) reagiert. Und auch nur dann wenn dieses Tag genau so existiert.

Hier mal konkreter:
<location-id town-type="small">Hintertupfingen</location-id>
<location-id town-type="medium">Essen</location-id>
<location-id town-type="large">Berlin</location-id>

Ich möchte hier z.B. NUR die Werte mit <location-id town-type="small"> und <location-id town-type="medium"> haben! Wie mache ich das?

Mein Problem ist, dass ich nicht weiß, wie ich den Zusatz < ... town-type="small"> ansprechen soll?!

Wäre super, wenn mir jemand hier (viellecht aus eigener Erfahrung) den heißen Tipp geben kann! :-)

Vielen Dank und Grüße,
Chris

 
PHP-Desaster
07-09-2007, 21:30 
 
Ich würde XPath (http://de3.php.net/manual/de/function.dom-domxpath-query.php) benutzen
//location-id[@town-type='small'] | //location-id[@town-type='medium']

 
penizillin
07-09-2007, 21:31 
 
darum muss sich deine eigene funktion kümmern, die mittels start_element_handler alle öffnenden tags durchläuft. rtfm.

 
squirrelcgn
07-09-2007, 21:37 
 
@penizillin: wenn du mein Posting sorgfältig gelesen hättest, würdest du einsehen, dass ich das, was du mir in deinem brillianten Post "rietst" bereits längst verstanden habe und es auch anwende (rtfp)! Ich weiß einfach nur nicht, wie ich auf tiefer verschachtelte Attribute zugreife und im fudging manual steht es auch nicht drin!!!

@PHP-Desaster: hmmm, das schaue ich mir jetzt mal an. Danke schonmal!

Gruß,
Chris

 
penizillin
07-09-2007, 21:41 
 
du schriebst Allerdings möchte ich jetzt etwas "mehr": es geht um die start-Tags. Ich möchte gerne, dass der Parser statt auf ein "einfaches" start-Tag (z.b. <location>...) auf ein detaillierter beschriebenes Tag (z.B. <location-id town-type="medium"> ) reagiert. und genau das macht die callback funktion. und im manual steht, wie du die attribute ansprichst. wo ist also das problem?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:09 Uhr.