本帖最后由 Jarod 于 2014-6-19 18:46 编辑
根据Web Servie读取的XML数据为如下形式:- <list>
- <cn.myapps.webservice.model.SimpleDocument>
- <items>
- <entry>
- <string></string>
- <string>11e2-80a3-23c4a2ba-b96a-59e13d804b12</string>
- </entry>
- <entry>
- <string>项目编号</string>
- <string>14SFDXTX027</string>
- </entry>
- <entry>
- <string>项目名称</string>
- <string>顾堰民测试项目</string>
- </entry>
- </items>
- </cn.myapps.webservice.model.SimpleDocument>
- <cn.myapps.webservice.model.SimpleDocument>
- <items>
- <entry>
- <string></string>
- <string>11e2-80a3-23c4a2ba-b96a-59e13d804b12</string>
- </entry>
- <entry>
- <string>项目编号</string>
- <string>14SFDXTX029</string>
- </entry>
- <entry>
- <string>项目名称</string>
- <string>项目信息14030417</string>
- </entry>
- </items>
- </cn.myapps.webservice.model.SimpleDocument>
- </list>
复制代码 现需要
1.将XML文档反序列化为SimpleDocument对象集,从对象中获取相关属性到DataTable。
代码如下:- #region Deserializer
- /// <summary>
- /// Deserialize
- /// </summary>
- /// <param name="type">type</param>
- /// <param name="xml">xml string</param>
- /// <returns></returns>
- public static object Deserialize(Type type, string xml)
- {
- xml=xml.Replace("\n", "");
- try
- {
- using (StringReader sr = new StringReader(xml))
- {
- XmlSerializer xmldes = new XmlSerializer(type);
- return xmldes.Deserialize(sr);
- }
- }
- catch (Exception ex)
- {
- logger.Error(ex);
- return null;
- }
- }
- #endregion
复制代码 2.直接读取元素(貌似行不通,由xml文件看出元素的唯一性无法得到保证)插入DataTable.
请提供下反序列化的方法或者最顶层的<list>标签(或者list与SimpleDocuemnt)的相关信息。
调用反序列化方法代码如下:- List<SimpleDocument> listSimpleDocument = new List<SimpleDocument>();
- SimpleDocument sd =XMLSerializerHelper.Deserialize(typeof(List<SimpleDocument>), xml1) as SimpleDocument;
-
复制代码 |