PHP:将XML响应转换为特定的类(Object)


PHP : Convert XML Response to a specific class (Object)

我是一名Java开发人员。如何使用PHP处理XML响应?

  1. 我想调用一个将返回XML的服务HTTP(rest)
  2. 在得到这个XML响应之后,我想像在Java中那样自动将这个XML转换为对象(类)。(这是我不知道要应付的部分)

示例:

我的xml:

<?xml>
<root>
<user_email>fde@xxx.com</user_email>
<user_name>FDE Test</user_name>
<password_expired>false</password_expired>
</root>

我的班级:

class User{
    private $_userMail;
    private $_userName;
    private $_isPasswordExpired;
    // Getters and Setters
}

首先,您可以使用curl请求它(curl不是唯一的选项),这里有一个简单的示例。

并且需要使用simplexml_load_string 将响应xml更改为xml对象

$response = simplexml_load_string($xml_response);

您可以在类构造中随意设置响应数据。

class User {
   private $_userMail;
   function __construct($response) {
       $this->setUserMail($response->userMail);
   }
   // getters, setters
}

在您得到响应之后,您需要创建User对象并给出响应。

// Create User
$user = new User($response);
// Check if response created a valid object
if ($user instanceof User) {
    // valid 
} else {
    // not valid 
}