反序列化 xml 字符串并忽略根中的第一个元素

DeSerialize xml string and ignore the first element within root

我得到了这个XML字符串数据,结构如下:

  <Document>
     <Contents>
        <Content>
        ...
     <Contents>
  </Document>

所以结构总是像上面那样,我做了一个class,它准确地反映了将被识别为<Content>的对象。

我想知道如何将内容一次反序列化到 ListContent 对象中。目前我正在尝试

XmlSerializer annotationSerializer = new XmlSerializer(
            typeof(List<Content>),
            new XmlRootAttribute("Document")
        );

当然这不会起作用,因为第一个找到的元素将是内容,我该如何解决这个问题?我需要 Content class 上的某个属性吗?

您需要在此处使用根对象:

public class Document {
   public List<Content> Contents {get;} = new List<Content>();
}

现在反序列化 Document 并读取 .Contents 一些可以绕过根对象的场景,但是...这里没有,不方便。