Десериализация xml в объект с помощью Symfony2

Я собираю некоторые данные в формате xml через API и хотел бы десериализовать их в списке объектов. Я использую Symfony2 и узнаю JMSSerializerBundle, но я действительно не знаю, как его использовать.

Я знаю, что Sf2 позволяет сериализовать/десериализовать объект в/из массива, но я ищу что-то более конкретное. Например, для этого класса:

class Screenshot
{
    /**
     * @var integer $id
     */
    private $id;

    /**
     * @var string $url_screenshot
     */
    private $url_screenshot;


    public function __construct($id, $url_screenshot) {
        $this->id = $id;
        $this->url_screenshot = $url_screenshot;
    }


    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set url_screenshot
     *
     * @param string $urlScreenshot
     */
    public function setUrlScreenshot($urlScreenshot)
    {
        $this->url_screenshot = $urlScreenshot;
    }

    /**
     * Get url_screenshot
     *
     * @return string 
     */
    public function getUrlScreenshot()
    {
        return $this->url_screenshot;
    }

    /**
     * Serializes the Screenshot object.
     *
     * @return string
     */
    public function serialize()
    {
        return serialize(array(
            $this->id,
            $this->url_screenshot
        ));
    }

    /**
     * Unserializes the Screenshot object.
     *
     * @param string $serialized
     */
    public function unserialize($serialized)
    {
        list(
            $this->id,
            $this->url_screenshot
        ) = unserialize($serialized);
    }

    public function __toString() {
        return "id: ".$this->id
             ."screenshot: ".$this->url_screenshot;
    }
}

я хотел бы сериализовать/десериализовать в/из такого рода xml:

<?xml version="1.0" encoding="UTF-8" ?>
<screenshots>
   <screenshot>
      <id>1</id>
      <url_screenshot>screenshot_url1</url_screenshot>
   </screenshot>
   <screenshot>
      <id>2</id>
      <url_screenshot>screenshot_url2</url_screenshot>
   </screenshot>
   <screenshot>
      <id>3</id>
      <url_screenshot>screenshot_url3</url_screenshot>
   </screenshot>
</screenshots>

я действительно хочу использовать что-то интегрированное/интегрировать в Sf2 (что-то "гладкое")и предпочитаю избегать любые самодельные парсеры xml.

5
задан Mikolaj 11 April 2012 в 22:07
поделиться