Autor | Zpráva | ||
---|---|---|---|
Chuchycek Profil |
#1 · Zasláno: 4. 12. 2016, 11:57:35
Ahoj, píšu univerzální xml parser. A narazil jsem na problém. Když xml obsahuje tagy g:type viz.: get2.feedink.com/52720e003547c70561bf5e03b95aa99f. Tak všechny ty tagy s g: zahodím. Napadlo mě, že bych v tom obsahu nahradil ve všech elementech g: za "". Poradí někdo, jak pokračovat?
Díky |
||
juriad Profil |
#2 · Zasláno: 4. 12. 2016, 12:12:59
Chuchycek:
Panebože proč? XML parserů jsou mraky, použij nějaký hotový. To g: je namespace. Nějak nechápu cemu ti tam vadí, můžeš jej přece považovat za součást názvu elementu. |
||
Chuchycek Profil |
#3 · Zasláno: 4. 12. 2016, 12:14:53
Proto potřebuji nějak nasměrovat, když to při běžném
$data = simplexml_load_string( file_get_contents($url) ); |
||
juriad Profil |
#4 · Zasláno: 4. 12. 2016, 12:34:43
Jsou dva způsoby, jak přistupovat k elementům s namespace:
1) metoda children 2) xpath Ukázka té první: $data = simplexml_load_string( file_get_contents("http://get2.feedink.com/52720e003547c70561bf5e03b95aa99f") ); foreach ($data->channel->item as $item) { $title = NULL; $price = NULL; # iterace přes všechny bez NS foreach ($item->children() as $c) { if ($c->getName() == 'title') { $title = (string) $c; } } # iterace přes všechny g: foreach ($item->children("g", TRUE) as $c) { if ($c->getName() == 'price') { $price = (string) $c; } } # výpis echo "title: " . $title . "\n"; echo "price: " . $price . "\n"; } |
||
Časová prodleva: 8 let
|
0