Spelmann
Erfahrenes Mitglied
Hallo,
ich versuche gerade ein XML von mobile.de auszulesen.
Die Benennung der Knoten ist allerdings problematisch. Sie enthalten Doppelpunkte und Minuszeichen, die mir beim Auslesen via simpleXML Probleme bereiten.
So sieht das XML aus:
Mein Versuch einen Wert auszugeben:
will ich den Knoten ad:class > resource:local-description auslesen,
bekomme ich eine Fehlermeldung da resource:local-description ja so nicht stehen darf.
(Parse error: syntax error, unexpected ':', expecting ',' or ';' in C:\xampp...)
Kann mir jemand auf die Sprünge helfen, wie ich in einem Rutsch bei allen Knoten den Doppelpunkt und das Minuszeichen in einen Unterstrich wandeln kann? Gibts da eine Kombination aus regulärem Ausdruck und replace?
Vielen Dank!
ich versuche gerade ein XML von mobile.de auszulesen.
Die Benennung der Knoten ist allerdings problematisch. Sie enthalten Doppelpunkte und Minuszeichen, die mir beim Auslesen via simpleXML Probleme bereiten.
So sieht das XML aus:
Code:
<search:search-result xmlns:resource="http://services.mobile.de/schema/resource" xmlns:ad="http://services.mobile.de/schema/ad" xmlns:seller="http://services.mobile.de/schema/seller" xmlns:search="http://services.mobile.de/schema/search" xmlns:financing="http://services.mobile.de/schema/common/financing-1.0" xmlns:error="http://services.mobile.de/schema/common/error-1.0">
<search:total>33</search:total>
<search:page-size>20</search:page-size>
<search:current-page>1</search:current-page>
<search:max-pages>2</search:max-pages>
<search:ads>
<ad:ad key="123456789" url="https://services.mobile.de/search-api/ad/123456789">
<ad:creation-date value="2014-05-14T12:54:24+02:00"/>
<ad:modification-date value="2015-03-14T13:17:18+01:00"/>
<ad:detail-page url="http://suchen.mobile.de/auto-inserat/vw-golf-vi-1-4-tsi-comfortline.html"/>
<ad:vehicle>
<ad:class key="Car" url="https://services.mobile.de/refdata/classes/Car">
<resource:local-description xml-lang="de">Pkw</resource:local-description>
</ad:class>
<ad:category key="Limousine" url="https://services.mobile.de/refdata/categories/Limousine">
usw.
Mein Versuch einen Wert auszugeben:
PHP:
$path ="/search:search-result/search:ads/ad:ad[@key=".$id."]/ad:vehicle/ad:make";
if (!$res = $xml->xpath($path))
{
echo "Artikel nicht vorhanden!";
}else {
echo "<h1>".$res[0]->resource:local-description."</h1>";
}
bekomme ich eine Fehlermeldung da resource:local-description ja so nicht stehen darf.
(Parse error: syntax error, unexpected ':', expecting ',' or ';' in C:\xampp...)
Kann mir jemand auf die Sprünge helfen, wie ich in einem Rutsch bei allen Knoten den Doppelpunkt und das Minuszeichen in einen Unterstrich wandeln kann? Gibts da eine Kombination aus regulärem Ausdruck und replace?
Vielen Dank!
Zuletzt bearbeitet: