Маршал Массив пользовательских значений XML - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть следующий набор structs, который мне нужно записать определенным образом в XML:

type Parameter struct {                                                                                                                                                          
    ParameterType             string        `xml:"param_type" json:"parameterType"`                                                                                              
    ParameterValue            string        `xml:"param_value,omitempty" json:"parameterValue,omitempty"`                                                                        
} 

type Condition struct {                                                                                                                                                          
    XMLName        xml.Name                                                                                                                         
    LeftParameter  Parameter                                                                                                                            
    Comparator     string      `xml:"comparator"`                                                                                           
    RightParameter Parameter                                                                                                                             
}

type Conditions struct {                                                                                                                                                        
    ConditionList  []Condition  `xml:"condition,omitempty" json:"condition,omitempty"`                                                                                         
}

Мне нужно записать и LeftParameter, и RightParameter как <param> в XML.Это должно выглядеть следующим образом:

<conditions>                                                                                                                                                             
  <condition>                                                                                                                                                            
    <param>                                                                                                                                                              
      <param_type>pop_ref</param_type>                                                                                                                                   
      <param_value>PtAge</param_value>                                                                                                                                   
    </param>                                                                                                                                                             
    <comparator>GE</comparator>                                                                                                                                          
    <param>                                                                                                                                                              
      <param_type>value</param_type>                                                                                                                                     
      <param_data_type>number</param_data_type>                                                                                                                          
      <param_value>8</param_value>                                                                                                                                       
    </param>                                                                                                                                                             
  </condition>  
<conditions>                                                                                                                                                             

Я предполагаю, что для этого мне следует использовать интерфейс Marshaller, но я не могу понять, как заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...