I am trying to use an IF statement in PHP to set a variable based on the value of an object returned by an outbound message being processed with simplexml_load_string().
It seems that comparing the resulting object to string in PHP is not working as I expected it would.
The relevant code is:
<?php
…
ob_start();
$capturedData = fopen('php://input', 'rb');
$content = fread($capturedData,5000);
$rcXML = simplexml_load_string($content);
…
$priority = $rcXML->children('http://schemas.xmlsoap.org/soap/envelope/')->Body->children('http://soap.sforce.com/2005/09/outbound')->notifications->Notification->sObject->children('urn:sobject.enterprise.soap.sforce.com')->Priority.PHP_EOL;
…
ob_end_clean();
…
if ($priority == "Urgent") {
$color = "red";
}
…
?>
I have tried several variations of print_r() and (string) against $priority, but am still not getting the expected results (change $color to "red").
The googles tells me that I need to use asXML() since simplexml_load_string() does not return a standard PHP object, but I am having no luck in getting that to work either.
$priority->asXML() returns: PHP Fatal error: Call to a member function asXML() on string
And I cannot seem to figure out how to properly use that either I guess.
Admittedly, my coding skills are not that polished!
Has anyone done something like this or know how I might be able to get this to work?