C#是否可以根据现有的XML文件,自动生成操作对象?

zzn007 2016-08-24 09:53:26
我现在有一个固定格式的XML文件,请问C#是否具有根据这个XML文件,自动生成操作对象的功能?我是从delphi过来了,delphi有这个功能,C#不知道有没有这个功能?
还是只有自己编写操作XML的代码?
...全文
1105 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzn007 2016-11-17
  • 打赏
  • 举报
回复
目前没有找到好的方法,自己解析XML了,效率也还可以。感谢参与回复的各位了,结贴
oreoconansisu 2016-10-26
  • 打赏
  • 举报
回复
就是根据XML文件,创建数据结构对象? 便于后面序列化/反序列化
drifter2002 2016-10-26
  • 打赏
  • 举报
回复
对象可以序列化成xml,也可以反序列化,格式预定义。
zzn007 2016-10-25
  • 打赏
  • 举报
回复
引用 16 楼 hjq624779687 的回复:
[quote=引用 15 楼 zzn007 的回复:] [quote=引用 13 楼 hjq624779687 的回复:] 固定格式直接用xmldocment,然后有什么xmllist xmlelement之类的让你解析你的xml http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html
我动态生成的attribute,怎么写回xml?[/quote] 你这个回复就让我有点疑惑了,如果都是一个程序,为什么要生成了xml再生成操作对象,为什么不直接生成操作对象呢。。。[/quote] 这个xml是用delphi的程序生成和修改的,现在需要使用C#的程序打开并编辑这个XML,所以要把操作这个XML的功能做成一个C#对象,让C#程序可以方便的调用
夏天的枫 2016-10-11
  • 打赏
  • 举报
回复
引用 15 楼 zzn007 的回复:
[quote=引用 13 楼 hjq624779687 的回复:] 固定格式直接用xmldocment,然后有什么xmllist xmlelement之类的让你解析你的xml http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html
我动态生成的attribute,怎么写回xml?[/quote] 你这个回复就让我有点疑惑了,如果都是一个程序,为什么要生成了xml再生成操作对象,为什么不直接生成操作对象呢。。。
zzn007 2016-09-26
  • 打赏
  • 举报
回复
引用 13 楼 hjq624779687 的回复:
固定格式直接用xmldocment,然后有什么xmllist xmlelement之类的让你解析你的xml http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html
我动态生成的attribute,怎么写回xml?
zzn007 2016-09-26
  • 打赏
  • 举报
回复
现在最根本的问题,就是使用序列化和反序列化,动态的attribute能实现不?我试了好多方法,就没实现。因为生成的对象当中,没有动态的attribute的属性! 这个没法和delphi自动生成的方法
xuzuning 2016-09-18
  • 打赏
  • 举报
回复
使用未知属性必须进行探测,并根据属性名的含义来解读数据,这本身就是费事费力的事情 如果属性名被设计的含义不清的话,你可能就无法解读数据了 建议还是约束性强点比较好,不是 未知属性,而是 可空属性 几十兆的xml文件,显然不是一个类型,而是某一个类型的序列 因此在解读一个类型后,处理一个对象和处理100个对象并没有太大的差异 数据库有 XML 类型字段,你可在 SQL 指令中使用 xmldoc 直接操作
  • 打赏
  • 举报
回复
如果可以重构,那么应该重新审定这个东西该不该作为“一个 xml”的决策。应该扔掉这个坑爹的设计,才能保证后续操作可行。 这里没有什么平衡点,效率本身就不可能上去。这根本不应该作为“一个xml”来设计。
zzn007 2016-09-18
  • 打赏
  • 举报
回复
我现在使用XML的序列化和反序列化遇到一个问题: 反序列化之后,生成了对象,但是我需要操作的属性,不是固定于对象自动生成的属性,我还有一些属性是用户定制的,预先不知道这些属性的名称和数值,是根据任务动态生成的,这个我研究了半天好像没法通过序列化和反序列化自动完成。 如果纯使用XMLdoc,我担心效率跟不上,因为xml文件可能要几十兆。 所以在效率和动态修改属性的操作上,我没有找到很好的平衡点,请问还有两者兼顾的比较平衡一点的方法?
夏天的枫 2016-09-18
  • 打赏
  • 举报
回复
固定格式直接用xmldocment,然后有什么xmllist xmlelement之类的让你解析你的xml http://www.cnblogs.com/RiseSoft/archive/2012/03/17/2404007.html
zzn007 2016-09-14
  • 打赏
  • 举报
回复
我的xml文件格式大部分是固定的,只是每个节点上有些属性是不固定的。也就是xml的结构99%是固定的,可以通过自动生成对象,但是不固定的节点上的属性,我怎么动态添加和修改,并且会动态地保存至文件中? 另外,我的xml可能会比较大,几十兆,因此对效率和内存还是有要求的
我叫小菜菜 2016-08-24
  • 打赏
  • 举报
回复
看具体场景。 1.xml可以直接用xmldocumen对象操作。 2.vs2013及以上有一个【将xml或者json粘贴为类】的功能,便于分析xml和json。 3.json序列化和反序列化,貌似可以直接从文本json串,或者xml文件反序列化为对象。 操作顺序一般是:先2后3。如果是格式不固定的用1
  • 打赏
  • 举报
回复
引用 2 楼 zzn007 的回复:
我说的自动操作,是C#自动生成操作XML的对象的代码,客户端只有直接调用对象就可以操作XML文件了
看linq to xml就可以的
  • 打赏
  • 举报
回复
你是从程序员省点事儿进行初始编程角度来说的,而 #1、#4 楼是从另一个(设计一个运行时解析功能)角度来说的。
  • 打赏
  • 举报
回复
vs 上通过主菜单“编辑->选择性粘贴”可以进行这类初始代码生成工作,节省开发人员人工分析 xml schema 的时间。
  • 打赏
  • 举报
回复
linq2xml就是用来操作xml的,这个不需要自动生成 或者你可以序列化和反序列化
巴士上的邂逅 2016-08-24
  • 打赏
  • 举报
回复
你是说生成实体类吗? 方法如下:首先将完整的Xml文本复制一下,在vs2013.net4.5项目下,依次选择菜单:编辑-》选择性粘贴-》将XML粘贴为类
zzn007 2016-08-24
  • 打赏
  • 举报
回复
我说的自动操作,是C#自动生成操作XML的对象的代码,客户端只有直接调用对象就可以操作XML文件了
正怒月神 2016-08-24
  • 打赏
  • 举报
回复
linq to xml或者 xelement等等都是可以操作的。 至于你说的自动操作。我不是太明白

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧