将XML文件转换为域模型

时间:2011-04-01 07:41:13

标签: c# xml

我从另一个软件系统获得了一个带有大量数据的xml文件。 我必须对这些数据做很多工作,所以我想将这个xml数据转换为特定的域模型,这使我的工作效率更高。所以我需要一种机制来将xml数据映射到域模型,反之亦然。 我有什么可能,你能完成清单吗?

  • Linq to XSD
  • 通过linq手动映射到xml或xml DOM
  • DataSet(读/写XML)!?
  • ...?

提前谢谢你, 最好的祝福 :-) 劳林

编辑:简单地说:我想做OR映射但不是DBMS我有一个XML文件; - )

3 个答案:

答案 0 :(得分:3)

尝试将Linq用于Xml。您的映射器看起来像下面的代码。

的xml:

<contacts>
  <contact contactId="2">
     <firstName>Barry</firstName>
     <lastName>Gottshall</lastName>
  </contact>
  <contact contactId="3">
     <firstName>Armando</firstName>
     <lastName>Valdes</lastName>
  </contact>
</contacts>

加载数据的代码:

XDocument loaded = XDocument.Load(@"C:\contacts.xml");

映射:

List<MyContact> contacts = (from c in loaded.Descendants("contact")
    select new MyContacts() {
                                 FirstName = (string)c.Element("firstName"),
                                 LastName = (string)c.Element("lastName")
                             }).ToList();

答案 1 :(得分:0)

假设xml模型与对象之间存在一对一的关系,您也可以实现System.Xml.Serialization.IXmlSerializableProper way to implement IXmlSerializable?

有更多信息

答案 2 :(得分:0)

如果您有域对象可用,

XML序列化/反序列化似乎是个好主意。

有关XmlSerializer Class

的更多信息