从XML生成类

本文关键字:XML | 更新日期: 2023-09-27 18:13:07

一开始我想确认我是c#新手。我只有一些AVR ANSI C编程经验。

我要做一个练习(截止日期:2012年4月)。这不是我的家庭作业,这只是向我的朋友和老师展示我能做到的唯一方式。让我们提出练习思路:

标题:类生成器WinForm详细信息:我需要创建一个应用程序(基于System.Reflection),它将在c#中创建源代码(类)。这个应用程序将允许用户添加随机XML文件并将其转换为c#类。最终用户将能够将其保存在某个地方。

我已经做了一部分代码(在MS Visual Studio c#中),让用户选择和保存文件。

我认为应该是这样的:XML的例子(我知道这些例子可能写错了-但我不知道XML)

<pizza>
  <vezuvio>
     <prize> 10 </prize>
  </vezuvio>
</pizza>

转换成c#

class Pizza{
  contruct vesuvio{
    int prize = 10;
  }
} 

我需要你的帮助:

  1. 关于同一项目/应用程序的有用链接-我在该网站上搜索,但找不到有趣的东西。
  2. 任何想法或糟糕的源代码,主要显示它应该如何工作。
  3. 什么是反序列化,它有用吗?

从XML生成类

编写从xml到c#的通用映射是…复杂,在许多情况下可能确实不可能。但是,如xsd等工具所示,可以从xml推断出模式。但是,作为一种更简单的选择,您可以使用xslt分析xml,它可以简单地检查类似的兄弟姐妹(以确定某项是单独的还是一个列表,等等)。如果你熟悉c#, xml和xslt,敲出一些基本的,但功能将是一个相当简单的事情。

复杂性还取决于是否期望您应该能够使用来自相同模式的任意数据填充对象模型:如果您可以简单地插入XmlSerializer,那就太好了!但是从头开始或从XmlReader(作为起点)编写一个完整的xml序列化引擎是非常重要的。

Xml也可能比您想象的要复杂得多——有许多微妙之处(尤其是xmlns名称空间)。

作为起点,. net附带了XSD. exe,它可以从XML/XSD生成c#类。获得类之后,就可以从XML文件进行反序列化,将文件中的数据读取到对象的属性中。

1)你不会得到你需要的直接链接。搜索xml节点读取、xml属性和节点名称。Xquery的道路。2)如果你采用增量的方法先找到根节点,然后把它写入源文件,等等3)我不认为XML搜索对你有多大帮助

最好的工具是SimpleXmlToCode

做这个工作很好。它不需要任何XSD或其他东西。直接XML到POCO类

相关文章:
  • 没有找到相关文章