Pear XML序列化程序和属性


Pear XML Serializer and Attributes

有没有一种方法可以"告诉"PEARXML_Serializer,它应该将哪些属性序列化为属性,哪些作为子元素?

例如:

class User {
  public $id;
  public $name;
  public $address;
}

应该这样序列化:

<User id="0">
  <name>John Doe</name>
  <address></address>
</User>

我曾想过使用"XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES"选项,但不幸的是,我需要一些标量作为属性,一些作为子元素。

有没有办法告诉XML_Serializer应该如何序列化源类的属性?

做了一些代码审查,得到了解决方案:

$serializer->setOption(
  XML_SERIALIZER_OPTION_SCALAR_AS_ATTRIBUTES => array(
    "User" => array("id")
  )
);

这个把戏。。。所有内容都将序列化为XML元素,但用户元素的"id"属性将序列化为属性