传递 xml 并获取强类型 .NET 对象

发布于 2024-11-29 08:32:56 字数 164 浏览 1 评论 0原文

我一直在使用 Linq To XML 来将 XML 文档映射到 .NET 对象。

谁能指导我是否也存在可以传递 XML 文档(字符串)并返回强类型 .NET OBject 的地方?

我一直在查看 XSD2Code 并在传递整个 XML 时遇到问题,因为它似乎为每个元素创建单独的类。

I've been using Linq To XML in order to mapp the XML DOcument to .NET OBjects.

Could anyone please guide me whether there any too exist where I can pass XML Document (string) and it returns strongly Type .NET OBject?

I've been looking at XSD2Code and having a problem passing the whole XML as it seems to create separate classes for each Elements.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

昨迟人 2024-12-06 08:32:56

非常简单:

  1. 获取 XML 并通过 xsd.exe 命令行工具运行它:

    <前><代码>c:\> xsd.exe yourfile.xml

    这将生成相应的 XML 架构文件 (yourfile.xsd)

  2. 再次运行 xsd.exe 工具,这次是在 XSD 文件上,以获取 C# 类:

    <前><代码>c:\> xsd.exe /c yourfile.xsd

    这将在 yourfile.cs 中生成一个代表 XML 内容的 C# 类

  3. 在项目中使用该类,只需将 XML 反序列化为 C# 对象即可:

    XmlSerializer ser = new XmlSerializer(typeof(YourClass));
    
    var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
    

    如果一切正常,您的结果现在包含一个 C# 类实例,它代表 1:1 XML 文件的内容。

就是这样!

Pretty easy:

  1. take your XML and run it through the xsd.exe command line tool:

    c:\> xsd.exe yourfile.xml
    

    This will produce a corresponding XML schema file (yourfile.xsd)

  2. Run the xsd.exe tool again, this time on the XSD file, to get a C# class:

    c:\> xsd.exe /c yourfile.xsd
    

    This will produce a C# class in yourfile.cs which represents your XML content

  3. Using that class in a project, just deserialize your XML into a C# object:

    XmlSerializer ser = new XmlSerializer(typeof(YourClass));
    
    var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
    

    If everything worked as it should, your result now contains a C# class instance that represents 1:1 that XML file's content.

That's it!

一城柳絮吹成雪 2024-12-06 08:32:56

只需使用 xsd 实用程序即可。

IIRC,您将其称为 xsd /c yourschema.xsd >类.cs

如果您有一堆没有架构的 XML,您还可以使用 xsd 来尝试推断架构。无论如何,这应该是一个很好的起点:)

Just use the xsd util.

IIRC, you call it xsd /c yourschema.xsd > classes.cs.

If you have a bunch of XML without schema, you can also use xsd to try infer a schema. That should be a good starting point anyways :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文