Как превратить результат xpath в строку с PHP? - PullRequest
0 голосов
/ 03 октября 2009
if($xmlobj = simplexml_load_string(file_get_contents($xml_feed)))
{
    $result = $xmlobj->xpath("TrafficMeta");
}

Приведенный выше код возвращает желаемый результат, и при просмотре с print_r он показывает это, что я хочу получить (sessionId):

Array ( [0] => SimpleXMLElement Object ( [sessionId] => tbfm1t45xplzrongbtbdyfa5 ) ) 

Как я могу сделать этот sessionId в строку?

Ответы [ 3 ]

1 голос
/ 03 октября 2009

Попробуйте $result[0]->sessionId.

1 голос
/ 03 октября 2009

Функция возвращает массив объектов SimpleXMLElement. Чтобы получить доступ к члену $ sessionId первой записи массива, вы делаете это:

echo $result[0]->sessionId;

Обратите внимание, что в массиве может быть больше элементов. Вы должны либо утверждать, что он действительно существует, либо обрабатывать их все:

# either one of these
assert(count($result) === 1);
if (count($result) !== 1) throw new Exception('Unexpected data in xml');
# or this
foreach ($result as $object) {
    echo $object->sessionId;
}
1 голос
/ 03 октября 2009

Я не могу заставить его работать с XPath, но $result[0]['sessionId'] работает нормально. Используйте strval(), если вам нужна настоящая строка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...