我使用jms序列化程序包将xml反序列化到我的sf2项目中的对象中。我并没有创造我的所有型号的任何问题,直到我来补充这个领域:JMS串行器 - 反序列化xml中的非经常性节点结构
<parent_property>
<child_property_1>
<![CDATA[ value ]]>
</child_property_1>
<child_property_1>
<![CDATA[ value ]]>
</child_property_1>
<child_property_1>
<![CDATA[ value ]]>
</child_property_1>
<child_property_2>
<![CDATA[ value ]]>
</child_property_2>
</parentProperty>
但这种模式是不是复发,child_property_1或child_property_2出现的数字可以更改。
我试了很多东西(与JMS DOC),但没有成功......
<?php
/**
* @Serializer\XmlList(inline = true, entry = "child_property_1")
* @Serializer\XmlList(inline = true, entry = "child_property_2")
*/
public $parentProperty;
?>
编辑:
所以我尝试的Jakub Zalas的回答是:
MainEntity.php
/**
* @Serializer\Type("My\Bundle\Api\Model\ParentProperty")
*/
public $parentProperty;
ParentProperty.php
/**
* @Serializer\XmlRoot("parent_property")
*/
class ParentProperty
{
/**
* @Serializer\XmlList(inline = true, entry = "child_property_1")
*/
$childProperty1;
/**
* @Serializer\XmlList(inline = true, entry = "child_property_2")
*/
$childProperty2;
}
但是反序列化仍然失败。此外,该过程发生在命令类中,因此我没有任何错误消息...因此调试相当困难
你是否尝试过注释两个单独的属性而不是单个属性? – 2015-02-06 19:34:11
你是什么意思?我必须先描述父母的财产,对吗? – 2015-02-07 20:31:07