我有一些看起来像这样的XML:
<Body>
<RESULT>
<SUCCESS>true</SUCCESS>
<SESSIONID>42</SESSIONID>
<SESSION_ENCODING>;jsessionid=42</SESSION_ENCODING>
</RESULT>
</Body>
SimpleXML以这种方式解析它:
$obj = simplexml_load_string($xmlStringAsAbove);
$this->sessionId = $obj->Body->RESULT->SESSIONID;
结果如下:
[sessionId:protected] => SimpleXMLElement Object
(
[0] => 42
)
我需要的是:
[sessionId:protected] => 42
我怎样才能做到这一点?
答案 0 :(得分:4)
将其转换为字符串(或int)以获取<SESSIONID>
标记的内容:
$this->sessionId = (string) $obj->Body->RESULT->SESSIONID;
答案 1 :(得分:0)
根据我的经验,当您需要一个值而不是一个对象时,SimpleXMLelemnt可能会很痛苦。
根据前面的答案,您可以转换所需的XML部分,或使用以下方法:
在ops示例中,要获取整数,可以使用intval():
$this->sessionId = inval($obj->Body->RESULT->SESSIONID);
从(PHP 5> = 5.3.0,PHP 7)开始,您还可以使用SimpleXMLElement :: __ toString方法获取字符串;
https://www.php.net/manual/en/simplexmlelement.tostring.php
$this->sessionIdasString = $obj->Body->RESULT->SESSIONID->__toString();