C# XML序列化额外根节点

4

我有一个集合想要序列化成XML文档。该类如下:

public class Contacts{
  public List<PendingContactDTO> contacts { get; set; } 
}

我的主要问题是现在我的xml看起来像这样:
<Contacts>
   <contacts>
       <..... all contacts>
   </contacts>
</Contacts>

事实上,我想让它看起来像这样:

   <contacts>
       <..... all contacts>
   </contacts>

有没有一种方法可以做到这一点?


它确切地模拟了你所拥有的,在Contacts类中的Contacts属性。当类获得额外成员时,它应该是什么? - H H
@Henk,这种情况已经很明确了;简单地说,你可能会得到<a/><b/><b/><b/><b/><c/> - Marc Gravell
2个回答

6
[XmlRoot("contacts")]
public class Contacts{
    [XmlElement("contact")]
    public List<PendingContactDTO> contacts { get; set; } 
}

应该为您提供:
<contacts>
     <contact...>...</contact>
     ...
     <contact...>...</contact>
</contacts>

XmlRootAttribute 重命名 ContactscontactsXmlElementAttribute 告诉它删除集合节点的额外层,将每个 contact 命名)

@PopCatalin 那时我还不能这样做,因为我必须在提出问题后等待一段时间;) 我已经将它列入我的待办事项。 - Patrick

0

将你的 XML 加载到 XmlDocument

xmlDoc.LoadXml(StrXML);
xmlDoc.SelectSingleNode("/Contacts/contacts")

希望这能对你有所帮助


OP 正在尝试创建一个给定形状的 XML 文档... 而不是解析一个文档。 - Marc Gravell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接