Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Sabre XML编写器-组重复元素_Php_Xml_Serialization - Fatal编程技术网

Php Sabre XML编写器-组重复元素

Php Sabre XML编写器-组重复元素,php,xml,serialization,Php,Xml,Serialization,我对SabreXML有一个小问题 我不喜欢为我想要序列化的每个PHP类开发硬编码的自定义编写器,所以我使用mapValueObject告诉SabreXML该做什么。 不幸的是,我的重复元素没有分组 我有一个PHP模型,如下所示(简化): 类ProductItem包含类“Product”的一个对象和一个数组,该数组包含多语言的多个ProductsDescription class ProductItem extends Model { /** * @var Product */

我对SabreXML有一个小问题

我不喜欢为我想要序列化的每个PHP类开发硬编码的自定义编写器,所以我使用mapValueObject告诉SabreXML该做什么。 不幸的是,我的重复元素没有分组

我有一个PHP模型,如下所示(简化):

类ProductItem包含类“Product”的一个对象和一个数组,该数组包含多语言的多个ProductsDescription

class ProductItem extends Model {
  /**
   * @var Product
   */
  var $Product;
  /**
   * @var ProductsDescription[]
   */
  var $descriptions;
}
类模型包含如何序列化扩展类的信息

abstract Model {
  public function Serialize() {
    $service = new \Sabre\Xml\Service();
    $service->mapValueObject('{}ProductItem', ProductItem::class);
    $service->mapValueObject('{}Product', Product::class);
    $service->mapValueObject('{}ProductsDescription', ProductsDescription::class);
    $xml = $service->writeValueObject($this);
    return $xml;
  }
}
返回的XML如下所示:

<?xml version="1.0"?>
<ProductItem>
  <Product>
    <Id>1234</Id>
    <Stock>100</Stock>
  </Product>
  <descriptions>
    <Language_code>deu</Language_code>
    <Products_name>TestDEU</Products_name>
  </descriptions>
  <descriptions>
    <Language_code>eng</Language_code>
    <Products_name>TestENG</Products_name>
  </descriptions>
</ProductItem>
<?xml version="1.0"?>
<ProductItem>
  <Product>
    <Id>1234</Id>
    <Stock>100</Stock>
  </Product>
  <descriptions>
    <ProductsDescription>
      <Language_code>deu</Language_code>
      <Products_name>TestDEU</Products_name>
    </ProductsDescription>
    <ProductsDescription>
      <Products<Language_code>eng</Language_code>
      <Products_name>TestENG</Products_name>
    </ProductsDesription>
  </descriptions>
</ProductItem>

函数?

Hey@Mandalorserbe你对这个问题有什么解决办法吗?如果你得到了这个问题的答案,请分享..嗨@kupendra不,我没有找到解决方案,所以我切换到了另一个XML序列化程序(JMS)很抱歉回答得太晚谢谢你的重播@Mandalorserbe
Sabre\Xml\Serializer\repeatingElements($writer, $collection, 'childname');