我用xml存储的是数据 如
<Root>
<Person id="1" name="aa"></Person>
<Person id="2" name="bb"></Person>
<Person id="3" name="cc"></Person>
<Person id="4" name="dd"></Person>
</Root>
我想要把<Person id="1" name="aa"></Person>
<Person id="2" name="bb"></Person>序列化成对象 或者我要修改xml中的一个 如id="3"的能用反序列化么?
我是主攻C#的,不知道你用什么语言,说说我的看法。
我觉得你应该分清楚两个问题(我也只知道这两个问题),一个是XML序列化,一个是自定义配置节。虽有不同,但有区别。
一种是类Class固定,然后序列化数据到XML文件,然后用的时候又可以反序列化成类对象。这种XML的模式无法精确指定,至少我是这么认为的。处理大数据没太大问题。
一种是XML文件固定,然后写类来映射XML,这个类加上若干Attribute,然后可以直接把XML文件映射成类对象。这种XML格式是固定的。当然这种工作量稍大且复杂。这种对于大数据的处理有无障碍,我还不清楚,从直觉上感觉大数据肯定有问题。
据说还有一种是XML固定,然后为XML写xsd文件,然后可以快速读取,而且支持大数据,但不知如何快速读写,以前搜索过,但没找到有力的代码。
我的class是固定的。xml中存储的数据会多也会少,而且会修改某一个元素的值。请问我是序列化所有的xml后在查询是不是很耗内存啊? 那我是不是只能用linq to xml 来查询出我想要的结果
我也是主攻C#的。我还是个菜鸟呢!
@梦在前方: 使用XmlSerializer来序列化和反序列化,很简单的。
参考:http://www.cnblogs.com/yukaizhao/archive/2011/07/22/xml-serialization.html
@沧海一杰: 比如我的XML数据是这样的:
<Root>
<Root>
<Person id="1" name="aa"></Person>
<Person id="2" name="bb"></Person>
<Person id="3" name="cc"></Person>
<Person id="4" name="dd"></Person>
</Root>
我只想得到
<Person id="1" name="aa"></Person>
<Person id="2" name="bb"></Person>
我该怎么办?是先序列化所有的在查询呢?还是直接用linq to xml 查询。也就是能不能只序列化我想要的数据。
@梦在前方: 你拿到的是一个xml文件不完整的块,所以不属于xml序列化的问题,你需要有针对性的写代码拿到这样的数据,如:自已写代码拼接。