-1

Note Equal (!=) is not working with the XML Data in php

Below is my codes,

<?php
$xd1 = simplexml_load_string('<?xml version="1.0"?>
<ServiceResponse>
<ServiceHotel>
<BookingStatus>CANCELLED</BookingStatus>
</ServiceHotel>
<ServiceHotel>
<BookingStatus>CANCELLED</BookingStatus>
</ServiceHotel>
</ServiceResponse>');

$a = $xd1->ServiceHotel[0]->BookingStatus;
$b = $xd1->ServiceHotel[1]->BookingStatus;


    if ($a == $b):
    echo 'Equal';
    endif;
?>

Here $a and $b is equal value 'CANCELLED'. But its not accept in the IF condition

Note
  • 177
  • 1
  • 1
  • 9

2 Answers2

1

try it this way

// change this
$a = $xd1->ServiceHotel[0]->BookingStatus;
$b = $xd1->ServiceHotel[1]->BookingStatus;

// to this
$a = $xd1->ServiceHotel[0]->BookingStatus->asXML();
$b = $xd1->ServiceHotel[1]->BookingStatus->asXML(); 
Alaa M. Jaddou
  • 1,180
  • 1
  • 11
  • 30
1
<?php
$xd1 = simplexml_load_string('<xml version="1.0">
<ServiceResponse>
<ServiceHotel>
<BookingStatus>CANCELLED</BookingStatus>
</ServiceHotel>
<ServiceHotel>
<BookingStatus>CANCEfLLED</BookingStatus>
</ServiceHotel>
</ServiceResponse>
</xml>');

$a = $xd1->ServiceResponse->ServiceHotel[0]->BookingStatus;
$b = $xd1->ServiceResponse->ServiceHotel[1]->BookingStatus;

var_dump($xd1);
echo '<br><br>';

var_dump($a);
echo '<br><br>';

var_dump($b);
echo '<br><br>';

    if ($a == $b):
      echo 'Equal';
    else:
      echo 'Not Equal';
    endif;

Test on http://phptester.net/ returns "Not Equal"

If you use ("$a" == "$b"): instead of ($a == $b): it returns Equal because $a/$b will parsed as true.

HQ5
  • 81
  • 10