php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 31.05.2008, 16:53  
Neuer Benutzer
 
Registriert seit: 31.05.2008
Beiträge: 1
swmsherl befindet sich auf einem aufstrebenden Ast
Standard SimpleXML: Doppelpunkt im Elementnamen

Hallo!

Ich habe ein Problem mit SimpleXML unter PHP5. Konkrekt geht es um einen Elementnamen in einem XML-Dokument, der einen Doppelpunkt enthält. Dieses Element schaffe ich nicht einzulesen.

Es geht um folgendes XML-Dokument:

<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:zubka="http://zubka.com/services/rss-ext">
<channel>
...
<item>
...
<zubka:title>Customer Service in Germany</zubka:title>
...
</item>
...

"zubka:title" möchte ich einlesen.

Versuch 1:
...
$xml = new SimpleXMLElement(file_get_contents($feed->url));
$parsed_source = new stdClass();
$parsed_source->title = "Zubka XML Feed";
$parsed_source->description = "Jobs ";
$parsed_source->items = array();
foreach( $xml->channel->item as $result ){
$curr_item = new stdClass();
$curr_item->title = (string)$result-> zubka:title;
...

Bringt die Fehlermeldung “Parse error: syntax error, unexpected ':' in /home/XXXXXX/XXXXXX/modules/XXXXXX/parser_zubka/parser_zubka_xml.module on line 77” (ist die Zeile “$curr_item->title = (string)$result-> zubka:title;”)


Versuch 2:
... $xml = new SimpleXMLElement(file_get_contents($feed->url));
$parsed_source = new stdClass();
$parsed_source->title = "Zubka XML Feed";
$parsed_source->description = "";
$parsed_source->items = array();
foreach( $xml->channel->item as $result ){
$curr_item = new stdClass();
$curr_item->title = (string)$result-> {'zubka:title'};
...


(Nach PHP: Beispiele - Manual Beispiel #3)
Bringt keine Fehlermeldung, es werden aber auch keine Daten importiert.

Hat jemand einen Tipp für mich, wie ich dieses 'zubka:title' mit simplexml erfolgreich ansprechen kann. Alle normalen Elemente ohne Sonderzeichen im Elementnamen funktionieren übrigens problemlos.
swmsherl ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 31.05.2008, 17:37  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Hallo swmsherl und herzlich willkommen im Forum,

ein ähnliches Problem wurde vor einiger Zeit in einem anderen Thread angesprochen. Scheint so, als kommt simpleXml mit den Namespaces nicht so wirklich zurecht:

http://www.php.de/php-einsteiger/133...media-rss.html
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 01.06.2008, 18:03  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

namespace_prefix:local_name
Das Prefix ist einem URL zugeordnet. Ausschlaggebend ist (sollte sein) der URL, nicht der Prefix. Das gleiche Dokument könnte auch so aussehen
Code:
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:clonk="http://zubka.com/services/rss-ext">
 <channel>
  <item>
   <clonk:title>Customer Service in Germany</clonk:title>
  </item> 
 </channel>
</rss>
Mit SimpleXML kannst Du zur Zeit nur über die Methode children() auf Namespaces zugreifen
PHP-Code:
<?php
$rss 
= new SimpleXMLElement('<rss version="2.0" xmlns:zubka="http://zubka.com/services/rss-ext">
 <channel>
  <item>
   <zubka:title>Customer Service in Germany</zubka:title>
  </item> 
 </channel>
</rss>'
);
echo 
$rss->channel->item->children('http://zubka.com/services/rss-ext'false)->title[0];
Wenn Du unbedingt das Prefix statt der URL verwenden willst, kannst Du auch children('zubka', true) verwenden. Aber das ist nicht das, was sich die Erfinder von XML gedacht haben.

PHP: SimpleXMLElement->children() - Manual
David ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP/XML: SimpleXML Zergling-new Tutorials 1 08.04.2009 00:10
simplexml und media rss zeimann PHP Tipps 2008 2 21.05.2008 23:51
XML Parsing ohne SimpleXML oder DOM imported_hidingmyfame PHP Tipps 2008 3 09.04.2008 09:08
SimpleXML parst nicht korrekt? Anotherone PHP-Fortgeschrittene 2 08.03.2007 12:27
XML file bearbeiten (mit simplexml???) chiliGREEN PHP Tipps 2006 6 03.09.2006 22:18
1. Knotenname eines XML-Dokuments mit SimpleXML Clue PHP Tipps 2006 14 20.04.2006 17:42
simplexml & elementnamen ermitteln flyingeagle PHP Tipps 2006 7 13.02.2006 21:18
[Erledigt] XML mit simplexml und xpath in HTML umwandeln PHP-Fortgeschrittene 3 15.07.2005 01:39
Alternative zu simplexml Buhmann Beitragsarchiv 6 17.05.2005 16:10
Bug in SimpleXML? PHP-Fortgeschrittene 8 10.03.2005 08:54
[Erledigt] XML Verarbeitung mit SimpleXML PHP5 PHP-Fortgeschrittene 1 29.12.2004 11:22
[Erledigt] PHP5 bei 1&amp;1 mit simplexml,...? PHP-Fortgeschrittene 8 12.12.2004 12:08
[Erledigt] SimpleXML Entities PHP-Fortgeschrittene 4 19.11.2004 18:21
SimpleXML: Name des Root-Tags Quadaptor PHP-Fortgeschrittene 12 11.09.2004 22:49
Elemente/Nodes mit SimpleXML hinzufügen PHP-Fortgeschrittene 3 31.07.2004 00:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
xml doppelpunkt, simplexml doppelpunkt, simplexml doppelpunkt im elementnamen, php doppelpunkt, doppelpunkt xml, php simplexml doppelpunkt, doppelpunkt in xml, simplexmlelement doppelpunkt, xml tag mit doppelpunkt, doppelpunkt in php, xml mit doppelpunkt, simple xml doppelpunkt, xml parsen doppelpunkt, xml tag doppelpunkt, utf-8 doppelpunkt, php array doppelpunkt, xml element mit doppelpunkt, simplexml php doppelpunkt, xml element doppelpunkt, php xml doppelpunkt

Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum