Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SimpleXML, liczby z XML nie są typu integer
Forum PHP.pl > Forum > XML, AJAX > XML
Riklaunim
Obraz problemu:
  1. <?php
  2. $art = simplexml_load_string('<xml><foo>1</foo></xml>');
  3. echo 'FOO: '.$art->foo.'<BR><BR>';
  4.  
  5. IF($art->foo === 1)
  6. {
  7. echo 'FOO to integer<BR>'; // to się nie wyświetli tongue.gif
  8. }
  9. IF($art->foo == 1)
  10. {
  11. echo 'FOO ma artość 1 ale niekoniecznie jest to int<BR><BR>';
  12. }
  13.  
  14. $a = 1;
  15. IF($a === 1)
  16. {
  17. echo '$a to integer<BR>';
  18. }
  19. ?>

Z XMLa pobieram liczby potrzebne dalej tyle że musi to być liczba - int bo inaczej skrypt zgłupieje. Jak wymusić typ int na zmiennej zawierającej pobraną liczbę?
ActivePlayer
napisz przed zmienna (int)
np:
  1. <?php
  2.  
  3. $string = '123';
  4. $int = (int)$string;
  5.  
  6. ?>
bela
Jeszcze funkcja intval" title="Zobacz w manualu php" target="_manual istnieje.
Sh4dow
nie wiem czy simplexml to przelknie ale moze. np:

  1. <?xml version="1.0" encoding="ISO-8859-2"?>
  2. <jakis_root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3.      <ala>
  4.            <ma>
  5.                  <zwierze xsi:type="xsd:string">kota</zwierze>
  6.                  <ilosc xsi:type="xsd:int">1</ilosc>
  7.                  <kosztowal xsi:type="xsd:float">12.99</kosztowal>
  8.                  <ladny xsi:type="xsd:boolean">1</ladny>
  9.            </ma>
  10.      </ala>
  11. </jakis_root>

tu sa dwie delkaracje namespace ktore pozwalaja na okreslanie typow zmiennych. Jak widac Name space jest brane ze specyfikacji XML Schema, ale dziala Rkingsmiley.png Wyproboj moze to pomoze w innym przypadku pozostaje tylko rzutowanie zmiennej. guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.