XML使用逗号分隔的字段反序列化为多个对象

时间:2014-01-02 22:25:53

标签: c# xml arrays deserialization delimiter

我希望能够将单个XML文件反序列化为相同类型的对象列表/数组。 XML文件中的某些字段将以逗号分隔(或由其他字符分隔),以唯一地指定每个对象中的值。例如,以下XML

<packet_type xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <version>1</version>
  <one_hertz>
    <field_one>true</field_one>
    <field_two>enum_one,enum_two,enum_three</field_two>
    <field_three>this is a string,this is a different string,...</field_three>
  </one_hertz>
</packet_type>
应该反序列化

,以便创建并填写三个对象:

  • object [0] .version = 1
  • object [0] .one_hertz.field_one = true
  • object [0] .one_hertz.field_two = enum_one
  • object [0] .one_hertz.field_three =“这是一个字符串”
  • object [1] .version = 1
  • object [1] .one_hertz.field_one = true
  • object [1] .one_hertz.field_two = enum_two
  • object [1] .one_hertz.field_three =“这是一个不同的字符串”
  • object [2] .version = 1
  • object [2] .one_hertz.field_one = true
  • object [2] .one_hertz.field_two = enum_three
  • object [2] .one_hertz.field_three =“...”

我对XML序列化/反序列化的了解有限,所以我想知道这对现有库是否可行。要反序列化的对象数量将超过10,而我将要处理的对象要复杂得多,因此我希望能够简洁地定义唯一值,而无需为每个对象定义整个XML结构。我最好从头开始编写解析器,还是有更简单的解决方案?

0 个答案:

没有答案