PHP XML Xpath получить цену ниже, чем не работает

<Product>
  <Price>
   <SalePrice>
      14,95
   </SalePrice>
  </Price>
</Product>  
<Product>
  <Price>
   <SalePrice>
     16,95
   </SalePrice>
  </Price>
</Product>



$response->xpath('Product/Price/[SalePrice <= "16,95"]/parent::*

Здравствуйте, я хочу, чтобы каждая цена продажи равнялась или ниже 16,95, как в моем примере. Но каждый раз, когда я пытаюсь, это дает пустой массив. Если я только использую:

$response->xpath('Product/Price/[SalePrice = "16,95"]/parent::*

Я получил результат. Я надеюсь, что вы можете помочь мне с этой проблемой. Спасибо

1 ответ

Решение
  1. переведите запятую в точку, чтобы получить правильное число с плавающей точкой
  2. преобразовать строку в число
  3. сравнить результат с числом с плавающей точкой, но не с строкой

    //Product/Price/SalePrice[number(translate(.,',','.'))<= 16.95]/parent::*

демо на eval

Другие вопросы по тегам