如何在c#中将XML转换为自定义对象[重复]

Posted

技术标签:

【中文标题】如何在c#中将XML转换为自定义对象[重复]【英文标题】:How to convert XML to a custom object in c# [duplicate] 【发布时间】:2017-11-04 23:51:18 【问题描述】:

XML 文件如下。希望能够读取和写入以下文件。

使用下面的代码,我可以搜索特定的页面名称节点

`XDocument xmldoc = XDocument.Load(path); 
 metadata m = new metadata();
 XElement emp = xmldoc.Descendants("data").FirstOrDefault(p => p.Element("pagename").Value == pagename);

        if (emp != null)
        
           //How to populate each child node
           // dctermscreator.en = this
           // dctermscreator.fr = this

           //so on
        `

 `<?xml version="1.0" encoding="UTF-8" ?>
 <root>
 <data>
  <pagename>default</pagename>
  <metadata>
    <desc>
      <en>eng desc</en>
      <fr>desc fra</fr>
    </desc>
    <dctermscreator>
      <en>eng desc</en>
      <fr>desc fra</fr>
    </dctermscreator>
    <dctermssubject>
      <en>eng desc</en>
      <fr>desc fra</fr>
    </dctermssubject>
  </metadata>
 </data>
 </root>`

【问题讨论】:

【参考方案1】:

我认为XmlSerializer 是您需要的,只需调用反序列化即可,它会为您完成所有工作。您还可以使用CreateReader 从 XElement 获取 xml 阅读器

【讨论】:

以上是关于如何在c#中将XML转换为自定义对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在喷雾中将所有拒绝转换为自定义 json?

我们可以在 javascript 中将通用对象转换为自定义对象类型吗?

Azure APIM:将 JSON 响应转换为自定义 XML 格式

C#中string类型转换为自定义数据类型怎么转?

如何在 Python 中将日期时间对象转换为自纪元(unix 时间)以来的毫秒数?

Datagridview如何将选定的行转换为自定义对象