2016-09-28 114 views
0

我得从格式化为一个API的XML响应如下:反序列化嵌套的XML节点

<?xml version='1.0' encoding='UTF-8'?> 
<response success="true"> 
    <messages> 
     <message type="WARNING" key="warning-unpublished-changes" values="" parentId="1"> 
      You have unpublished changes. Your changes will not be visible every where until it is published.</message> 
    </messages> 
    <output> 
     <accounts> 
      <account 
       id="1" 
       code="AssetsChild" 
       name="AssetsChild" 
       description="Total Assets Child" 
       displayAs="CURRENCY" 
       accountTypeCode="A" 
       decimalPrecision="0" 
       isAssumption="0" 
       suppressZeroes="1" 
       isDefaultRoot="1" 
       shortName="" 
       exchangeRateType="E" 
       balanceType="DEBIT" 
       formula="" 
       isLinked="0" 
       owningSheetId="" 
       isSystem="0" 
       isIntercompany="0" 
       dataEntryType="" 
       planBy="DELTA" 
       timeRollup="LAST" 
       timeWeightAcctId="" 
       levelDimRollup="SUM" 
       levelDimWeightAcctId="" 
       rollupText="" 
       startExpanded="1" 
       hasSalaryDetail="" 
       dataPrivacy="PRIVATE" 
       isBreakbackEligible="" 
       subType="CUMULATIVE" 
       enableActuals="1" 
       isGroup="0" 
      /> 
     </accounts> 
    </output> 
</response> 

我想拥有它反序列化到响应对象定义为:

class Response 
{ 
    protected $success; 
    protected $messages; 
    protected $accounts; 
} 

我已经能够使用下面的配置成功获取成功值和消息数组。是否有可能通过账户节点列表获得账户属性的水合物?

Response\AccountResponse: 
    xml_root_name: response 
    properties: 
    success: 
     type: boolean 
     xml_attribute: true 
     xml_value: false 

    messages: 
     type: array<Entity\Message> 
     xml_list: 
     entry_name: message 

回答