2016-11-01 3 views
-1

Я использую класс SimpleXMLElement для работы с xml-файлами в моем проекте.Получить значение атрибута с помощью SimpleXML для PHP

Мой вопрос: как получить значение атрибута какого-либо тега с некоторым атрибутом? Вы можете предположить, что я знаю имя тега, имя атрибута и его местоположение внутри xml-файла. Например, для такой строки <someTag cp="c2"> зная значения «someTag» и «cp», я хочу получить строку «c2».

Спасибо заранее.

+0

В руководстве есть несколько приятных [вводных примеров] (http://php.net/manual/en/simplexml.examples-basic.php), которые включают в себя доступ к основным атрибутам. – IMSoP

ответ

1

Вы можете использовать функцию attributes() на узле, чтобы получить его атрибуты:

$xml_str = '<xml> 
    <node> 
     <someTag cp="c2">content</someTag> 
    </node> 
</xml>'; 
$res = simplexml_load_string($xml_str); 

$items = $res->xpath("//someTag"); 
var_dump((string) $items[0]->attributes()->cp); 

Возвращаемый элемент является SimpleXMLElement, поэтому для того, чтобы использовать его, я преобразовал его в строку (с помощью (string) отливов).

+0

Да, это работает! Спасибо) – Miroslav

+0

Это излишне сложно для большинства случаев использования. Простой вариант: 'var_dump ((string) $ res-> someTag ['cp'])' – IMSoP

+0

К сожалению, извините пример; это будет '$ res-> node-> someTag ['cp']'. Надеюсь, вы получите эту идею. – IMSoP

Смежные вопросы