积极答复者
如何将保存collection里的数据写到XML文件里呢?

问题
答案
-
dear
你可以把Collection转成DataTable,然后再利用
写挡:
WriteXml()转成XML
http://msdn.microsoft.com/zh-cn/library/system.data.datatable.writexml.aspx
读挡:
1.先用ReadxmlSchema()读取资料结构
http://msdn.microsoft.com/zh-tw/library/system.data.datatable.readxmlschema.aspx
2.在用ReadXml()读取资料
http://msdn.microsoft.com/zh-tw/library/system.data.datatable.readxml.aspx
你也可以利用 XmlDocument 直接操作XML结构
http://www.dotblogs.com.tw/yc421206/archive/2010/08/10/17108.aspx
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 BoberSongModerator 2010年11月26日 2:26
-
如果有 XSD 的话,先阅读一下它,搞清楚您需要的目标 XML 文件格式。然后,可以选择以下方法中的任何一种实现:
1、XML 序列化,利用 System.Xml.XmlSerializer,不过,去匹配那个 XSD 就是个大问题,可能需要一些功夫的。
2、直接把所有 XML 作为 string,用代码生成这个 string,然后写入到文件。这种方法极其灵活,可以轻松地适应 XSD,不过就是代码可读性差,可维护性基本没有。
3、利用 System.Xml.Linq.XDocument 类,用 LINQ to XML 实现,这种方法兼顾 1 和 2 的优势,但需要一定的 XML 和 LINQ 的基础知识。不推荐利用 DataTable,因为它生成的 XML 的 Schema 不可控。
Mark Zhou- 已标记为答案 BoberSongModerator 2010年11月26日 2:26
-
如果有 XSD 的话,先阅读一下它,搞清楚您需要的目标 XML 文件格式。然后,可以选择以下方法中的任何一种实现:
1、XML 序列化,利用 System.Xml.XmlSerializer,不过,去匹配那个 XSD 就是个大问题,可能需要一些功夫的。
2、直接把所有 XML 作为 string,用代码生成这个 string,然后写入到文件。这种方法极其灵活,可以轻松地适应 XSD,不过就是代码可读性差,可维护性基本没有。
3、利用 System.Xml.Linq.XDocument 类,用 LINQ to XML 实现,这种方法兼顾 1 和 2 的优势,但需要一定的 XML 和 LINQ 的基础知识。不推荐利用 DataTable,因为它生成的 XML 的 Schema 不可控。
Mark ZhouDear Mark,
請問你所謂的 Schema 不可控是啥意思? Schema 不是一个标准的结构吗?
XmlWriteMode 列举就很多产生结构的方式吧?
WriteXml(Stream, XmlWriteMode)
WriteXml(String, XmlWriteMode)
WriteXml(TextWriter, XmlWriteMode)
WriteXml(XmlWriter, XmlWriteMode)
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 BoberSongModerator 2010年11月26日 2:26
全部回复
-
dear
你可以把Collection转成DataTable,然后再利用
写挡:
WriteXml()转成XML
http://msdn.microsoft.com/zh-cn/library/system.data.datatable.writexml.aspx
读挡:
1.先用ReadxmlSchema()读取资料结构
http://msdn.microsoft.com/zh-tw/library/system.data.datatable.readxmlschema.aspx
2.在用ReadXml()读取资料
http://msdn.microsoft.com/zh-tw/library/system.data.datatable.readxml.aspx
你也可以利用 XmlDocument 直接操作XML结构
http://www.dotblogs.com.tw/yc421206/archive/2010/08/10/17108.aspx
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 BoberSongModerator 2010年11月26日 2:26
-
如果有 XSD 的话,先阅读一下它,搞清楚您需要的目标 XML 文件格式。然后,可以选择以下方法中的任何一种实现:
1、XML 序列化,利用 System.Xml.XmlSerializer,不过,去匹配那个 XSD 就是个大问题,可能需要一些功夫的。
2、直接把所有 XML 作为 string,用代码生成这个 string,然后写入到文件。这种方法极其灵活,可以轻松地适应 XSD,不过就是代码可读性差,可维护性基本没有。
3、利用 System.Xml.Linq.XDocument 类,用 LINQ to XML 实现,这种方法兼顾 1 和 2 的优势,但需要一定的 XML 和 LINQ 的基础知识。不推荐利用 DataTable,因为它生成的 XML 的 Schema 不可控。
Mark Zhou- 已标记为答案 BoberSongModerator 2010年11月26日 2:26
-
如果有 XSD 的话,先阅读一下它,搞清楚您需要的目标 XML 文件格式。然后,可以选择以下方法中的任何一种实现:
1、XML 序列化,利用 System.Xml.XmlSerializer,不过,去匹配那个 XSD 就是个大问题,可能需要一些功夫的。
2、直接把所有 XML 作为 string,用代码生成这个 string,然后写入到文件。这种方法极其灵活,可以轻松地适应 XSD,不过就是代码可读性差,可维护性基本没有。
3、利用 System.Xml.Linq.XDocument 类,用 LINQ to XML 实现,这种方法兼顾 1 和 2 的优势,但需要一定的 XML 和 LINQ 的基础知识。不推荐利用 DataTable,因为它生成的 XML 的 Schema 不可控。
Mark ZhouDear Mark,
請問你所謂的 Schema 不可控是啥意思? Schema 不是一个标准的结构吗?
XmlWriteMode 列举就很多产生结构的方式吧?
WriteXml(Stream, XmlWriteMode)
WriteXml(String, XmlWriteMode)
WriteXml(TextWriter, XmlWriteMode)
WriteXml(XmlWriter, XmlWriteMode)
秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/- 已标记为答案 BoberSongModerator 2010年11月26日 2:26