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