SimpleXML, получить значение атрибута по его имени

waldicom

Новичок
SimpleXML, получить значение атрибута по его имени

Добрый день
По долгу слуюбы начал разбираться с XML.
Возник такой вопрос:
как мне по имени атрибута получить значение тега?

Попробую объяснить, чего же я хочу.
Есть такой XML (примерно)

Код:
<r>
<article id="123456"> 
    <textklasse name="color">white</textklasse> 
    <textklasse name="price" >1</textklasse>
</article>
</r>
Что я пытался:
знаю, что доступ на атрибуты делается так: $xml->r->article->textklasse['name'] (получу "color");
знаю, что значение тега можно получить так: $xml->r->article->textklasse (получу "white")

Я же ищу возможность по значению атрибута получить значение тега, т.е. что-то типа
$xml->r->article->textklasse['color'] - получил бы "white".

Подскажите пожалуйста, в какую сторону доки курить?

Спасибо
 

slach

Новичок
PHP:
<?
if ($xml->r->article->textklasse['name']=='color') {
  $white = $xml->r->article->textklasse;
}
?>
так понятнее??

в DOM это называется parentNode
 

waldicom

Новичок
Автор оригинала: slach
PHP:
<?
if ($xml->r->article->textklasse['name']=='color') {
  $white = $xml->r->article->textklasse;
}
?>
так понятнее??

в DOM это называется parentNode
Да, так понятнее, спасибо.
Проблема в том, что чтобы реализовать подобным боразом, необходимо каждый раз делать цикл по детям.
А я думал, что есть прямой способ указать.

Автор оригинала: Gas
xpath'ом ?
Хорошая штука, спасибо!
 

Andrey3681

Новичок
Помогите пожалуйста!
.... в ответ приходит такой XML:
Код:
<?xml version="1.0" encoding="utf-8"?>
<message>
    <state code="ERRALFANAME" date="2016-08-05 11:07:34">Error in alfaname</state>
</message>
Как мне получить значение code?
PHP:
$xml = new SimpleXMLElement($response);
echo $xml->message->state['code'];
Не выводится ничего:(
 

Vano

Новичок
Попробуй принтарнуть $xml->message посмотри что там. print_r()
 
Сверху