• Разработать статический класс для преобразования приведенного ниже xml документа в объект класса Company, содержащий список (использовать контейнер List) объектов класса Staff. Количество объектов Staff в списке не ограничено. Классы Staff и Company разработать самостоятельно.

    question img

Ответы 1

  • <?php

    class Staff

    {

    public $id;

    public $firstname;

    public $lastname;

    public $nickname;

    public $salary;

    public function __construct($id, $firstname, $lastname, $nickname, $salary)

    {

    $this->id = $id;

    $this->firstname = $firstname;

    $this->lastname = $lastname;

    $this->nickname = $nickname;

    $this->salary = $salary;

    }

    }

    class Company

    {

    public $staff;

    public function __construct($staff)

    {

    $this->staff = $staff;

    }

    }

    class XMLParser

    {

    public static function parse($xmlString)

    {

    $dom = new DOMDocument();

    $dom->loadXML($xmlString);

    $staff = $dom->getElementsByTagName('staff');

    $staffArray = array();

    foreach ($staff as $item) {

    $id = $item->getAttribute('id');

    $firstname = $item->getElementsByTagName('firstname')->item(0)->nodeValue;

    $lastname = $item->getElementsByTagName('lastname')->item(0)->nodeValue;

    $nickname = $item->getElementsByTagName('nickname')->item(0)->nodeValue;

    $salary = $item->getElementsByTagName('salary')->item(0)->nodeValue;

    $staffArray[] = new Staff($id, $firstname, $lastname, $nickname, $salary);

    }

    return new Company($staffArray);

    }

    }

    $xmlString = file_get_contents('xml.xml');

    $company = XMLParser::parse($xmlString);

    var_dump($company);

    ?>

  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years