0

simplexml_load_string() doesnot seem to work form for the following xml

 "<?xml version="1.0" encoding="UTF-8"?>
<Chat_vailable queue="IBIN" locale="gn">Hide</Chat_vailable>"

$result = simplexml_load_string($response->data)

[@attributes]
  queue -> IBIN
  locale->gn

the above xml is part of a response so when get the result it only contains attributes

$result is an object of SimpleXMLElement and only has an array of attributes

It doesn't have anything related to "Chat_valiable" or HIDE.

Could some one help please

1

3 Answers 3

1

I'm not sure what you're using to inspect the object there, I'm guessing print_r, but whatever it is, don't rely on it. :)

SimpleXML does not create a real PHP object with properties for everything in the XML document, it provides an object-like API linked to the internal parsed representation.

So in your case:

  • Chat_vailable is the root node, so is represented by $result itself (SimpleXML has no separate object for the "document", so there is nothing "above" the root element)
  • Hide is the text content of that node, so can be accessed with a string cast: (string)$result (or just echo $result, since that casts to string automatically)
  • the attributes queue and locale can be accessed using array notation (casting to string is a good habit, to avoid passing around objects which may confuse later functions): (string)$result['queue'], (string)$result['locale']

If you want to inspect the full content available through a SimpleXML object, have a look at these dedicated SimpleXML debug functions.

Sign up to request clarification or add additional context in comments.

Comments

0

performing var_dump on $result yield this. So it does get both attributes and content.

object(SimpleXMLElement)#1 (2) {
  ["@attributes"]=>
  array(2) {
    ["queue"]=>
    string(4) "IBIN"
    ["locale"]=>
    string(2) "gn"
  }
  [0]=>
  string(4) "Hide"
}

code that produce the output above as follows

$xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<Chat_vailable queue="IBIN" locale="gn">Hide</Chat_vailable>
EOF;

$result = simplexml_load_string($xml);

var_dump($result);

Comments

0
$xml = simplexml_load_string($x); // assume XML in $x
echo "queue: $xml[queue], locaele: $xml[locale], value: $xml";

will output:

queue: IBIN, locaele: gn, value: Hide

see it working: https://eval.in/39965

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.