Результатом выражения Xpath является список узлов, SimpleXMLElement: xpath () поддерживает только такой результат, он всегда будет возвращать массив объектов SimpleXMLElement (для действительного выражения Xpath).
Таким образом, вы все равно должны использовать foreach()/if()
, чтобы избежать сообщения об ошибке, если элемент не был найден.
Однако вы можете ограничить результат только списком с одним узлом.
foreach ($xc->xpath("/PRODUCTS/PRODUCT[CODE='$struct->code'][1]") as $productNode) {
return response()->json($productNode);
}
return FALSE;
$productNodes = $xc->xpath("/PRODUCTS/PRODUCT[CODE='$struct->code'][1]");
if (count($productNodes) > 0) {
return response()->json($productNodes[0]);
}
return FALSE;