2016-03-31 3 views
1

Я не могу заставить работу формулу в xpath. Вот часть кода воспроизвести проблему:Формула Simplexml xpath не работает

//$val['path_xml'] = "price + 1" 
$valID = $result[$i]->xpath($val['path_xml']); 
echo "<br>".$val['path_xml']."<br>"; 
echo $result[$i]->price."<br>"; 
echo json_encode($valID)."<br>"; 

Выход кода является:

price + 1 // as expected - the correct path 
525000  // just for test to check if price exists 
[]   // empty array???? 

Test 2 - просто чтобы убедиться, что все работает отлично:

//$val['path_xml'] = "price" 
$valID = $result[$i]->xpath($val['path_xml']); 
echo "<br>".$val['path_xml']."<br>"; 
echo $result[$i]->price."<br>"; 
echo json_encode($valID)."<br>"; 

Выход:

price    // correct 
525000   // ok 
[{"0":"525000"}] // OK 

Может кто-нибудь дать понять, почему формулы не работают? Может быть, нужна более новая версия PHP (в настоящее время 5,6) или любые другие идеи?

Проверено его с помощью этого инструмента онлайн, и это работает прекрасно: http://www.freeformatter.com/xpath-tester.html#ad-output

+0

[XPath может найти «цена + 1'] (http://xpathfiddle.net/LNZT5Z), но на php не все функции XPath реализованы, поэтому вы не можете использовать' price + 1'. Обновление PHP [не меняет его] (https://3v4l.org/KGDsW). – fusion3k

+0

@ fusion3k Спасибо за ваш комментарий !! Кажется, вы совершенно правы! Пожалуйста, добавьте это как ответ) –

ответ

0

Правильный ответ на fusion3k: XPath может найти цена + 1, но на PHP не все функции XPath реализованы, так что вы не можете использовать цену + 1 , Обновление PHP не меняет его.

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