Перелопатил форум, вопрос такой уже поднимался, но прозрачного решения по-прежнему нет. Часто в разных XML встречаются атрибуты, отделенные двоеточием от элемента. Давайте скажем раз и навсегда, можно ли их вытащить с помощью SimpleXML. Ну и, конечно же, чем их можно вытащить не особо напрягаясь. А то мне на досуге приспичило распарсить трек с карты Яндекса: Код (Text): <?xml version="1.0" encoding="utf-8"?> <ym:ymaps xmlns:ym="http://maps.yandex.ru/ymaps/1.x"> <Representation xmlns="http://maps.yandex.ru/representation/1.x" xmlns:gml="http://www.opengis.net/gml"> <View> <boundedBy xmlns="http://www.opengis.net/gml"> <Envelope> <lowerCorner>37.200935 55.898888</lowerCorner> <upperCorner>37.274418 55.917999</upperCorner> </Envelope> </boundedBy> </View> <Style gml:id="gpxLine"> <lineStyle> <strokeColor>9933FF90</strokeColor> <strokeWidth>4</strokeWidth> </lineStyle> </Style> <Style gml:id="userobject"> <iconStyle> <template>#placemark</template> </iconStyle> <balloonContentStyle> <template>#balloon</template> </balloonContentStyle> </Style> и тд
Psih Бывает "Копайте *такую то тему* " бывает "смотрите в сторону *чего то* " бывает "кури *такую то тему*" Но курите в эту сторону ето что то новенькое аххахаха
Ах-ха-ха))) Присоединяюсь к мысли "курить в сторону namespace" но что то не выходит ничего.. Может есть новые идеи у кого? Как все-же обратится, например к <cb:value> в XML Код (Text): $str = "cb:value"; $USD = $xml->item[0]->$str[0]; не работает((
alexfer, разобралсо: Для этого Код (Text): <item rdf:about="http://www2.bot.or.th/RSS/fxrates/fxrate-USD.xml"> <title>...</title> <link>...</link> <description>30.1032 Thai Baht = 1 USD</description> <dc:language>en</dc:language> <dc:date>2011-08-09</dc:date> <dc:format>text/html</dc:format> <cb:country>TH</cb:country> <cb:baseCurrency>THB</cb:baseCurrency> <cb:targetCurrency>USD</cb:targetCurrency> <cb:value frequency="business" decimals="4">30.1032</cb:value> <cb:rateType>Daily</cb:rateType> <cb:application>statistics</cb:application> </item> будет так: Код (Text): foreach ($xml->item as $entry){ //Use that namespace $namespaces = $entry->getNameSpaces(true); //Now we don't have the URL hard-coded $cb = $entry->children($namespaces['cb']); echo $cb->country; echo $cb->value; }
Только бесит что нужно усе определять каждый раз: Код (Text): $dc = $entry->children($namespaces['dc']); echo $dc->date,'<br>';