Доброго времени суток!
Язык программирования PHP. Преобразую строку в XML объект:
$xml = simplexml_load_string($xmlstr);
Вывожу на экран echo var_dump($xml);
Получаю такой результат:
object(SimpleXMLElement)#1 (6) {
["url"]=>
object(SimpleXMLElement)#2 (1) {
["@attributes"]=>
array(1) {
["domain"]=>
string(13) "https://ya.ru"
}
}
["yaca"]=>
object(SimpleXMLElement)#3 (1) {
["@attributes"]=>
array(1) {
["url"]=>
string(13) "https://ya.ru"
}
}
["tcy"]=>
object(SimpleXMLElement)#4 (1) {
["@attributes"]=>
array(2) {
["rang"]=>
string(1) "6"
["value"]=>
string(4) "9500"
}
}
["topics"]=>
object(SimpleXMLElement)#5 (1) {
["topic"]=>
object(SimpleXMLElement)#6 (1) {
["@attributes"]=>
array(2) {
["title"]=>
string(43) "Тема: Поисковые системы"
["url"]=>
string(26) "http://yaca.yandex.ru/yca/"
}
}
}
["textinfo"]=>
string(113) "
Тема: Поисковые системы
Регион: Россия
Источник: Официальный"
["r1"]=>
string(132) "wutwrfslmeextvlpphhotyoutxbmkulbvyuokbuxsocurtftohkircrhsjqjubpnlwfmxuhjgaxyxjrynbllcrqvtobsbtqiraide1d522c48423e52e8f6796dc9f1b3125"
}
Не могу сообразить, как мне получить значение value
поля tcy
. Обращаюсь как к массиву, но всегда пустой результат.
Добавил исходный XML:
<urlinfo>
<url domain="https://yandex.ru">
<![CDATA[ / ]]>
</url>
<yaca url="https://yandex.ru"/>
<tcy rang="6" value="380000"/>
<topics></topics>
<textinfo></textinfo>
<r1>
uvyerddwhdmcirwatmowxmyxpktyjugqbnhwbufhgmfvugvofkvjbfkaykbtndygknieqitmtjousnxtjjospvednwjemswehrlo68dda255ecb7540b7f383df508b14e8f
</r1>
</urlinfo>
Спасибо!
Могу ошибиться с позицонированием, не видя xml, но значения атрибута получаются просто указанием их имени как для ассоциативного массива. Вот так
echo $xml->tcy['value']
Подробнее об использовании Simplexml
function xmlAttribute($object, $attribute){
if(isset($object[$attribute]))
return (string) $object[$attribute];
else
return null;
}
$tcyValue=xmlAttribute($xml->tcy->attributes(),"value")
Если структуру не напутал. Весь смысл в том, что к св-ву объекта @attributes
напрямую нельзя обратиться. Один раз даже получалось через переменную вроде, типа:
$attributes="@attributes";
echo $xml->tcy->$attributes['value'];
Но потом как-то не заладилось, и я стал всегда использовать вариант выше.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я только только начинаю разбираться в phpВот задание:
В интернете часто пишут, что делать сайты (серверное программирование) на языках типа С, С++, C#, Фортран, ТурбоПаскаль вроде как нереально, надо...
Всем доброго времени суток! Пишу поэтапную форму отправки с логикой: 1 этап -> запись в куку -> второй этап -> запись в куку -> подтверждение -> отправка...