convert xdocument to IEnumerablelt;Dictionarylt;string, objectgt;gt;(将xDocument转换为IEnumerablelt;字典lt;字符串、对象gt;)
本文介绍了将xDocument转换为IEnumerable<;字典<;字符串、对象&>>;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的服务遇到一个问题,一个DataSet将填充并转换为序列化的XML对象:
string xmlString;
System.Xml.Serialization.XmlSerializer oSerializer = new System.Xml.Serialization.XmlSerializer(typeof(DataSet));
DataSet ds = new DataSet();
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
oSerializer.Serialize(sw, ds);
xmlString = sb.ToString();
}
此代码向我返回一个数据集:
<?xml version="1.0" encoding="utf-16"?>
<DataSet>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="ID" type="xs:int" minOccurs="0" />
<xs:element name="CheckboxCol" type="xs:int" minOccurs="0" />
<xs:element name="Last_x0020_Name" type="xs:string" minOccurs="0" />
<xs:element name="First_x0020_Name" type="xs:string" minOccurs="0" />
<xs:element name="User_x0020_Group" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet>
<Table diffgr:id="Table1" msdata:rowOrder="0">
<ID>1</ID>
<CheckboxCol>0</CheckboxCol>
<Last_x0020_Name>patel</Last_x0020_Name>
<First_x0020_Name>krunal</First_x0020_Name>
</Table>
<Table diffgr:id="Table2" msdata:rowOrder="1">
<ID>46</ID>
<CheckboxCol>0</CheckboxCol>
<Last_x0020_Name>123</Last_x0020_Name>
<First_x0020_Name>123</First_x0020_Name>
<User_x0020_Group>123</User_x0020_Group>
</Table>
<Table diffgr:id="Table3" msdata:rowOrder="2">
<ID>47</ID>
<CheckboxCol>0</CheckboxCol>
<Last_x0020_Name>def</Last_x0020_Name>
<First_x0020_Name>abc</First_x0020_Name>
<User_x0020_Group />
</Table>
</NewDataSet>
</diffgr:diffgram>
</DataSet>
现在我不知道如何读取或转换为List<Dictionary<string, object>>
或任何其他可以绑定到Silverlight数据网格的对象。
推荐答案
我不确定我完全理解您的要求,但您可能希望尝试使用XDocument.Parse来加载您的文档。然后使用Linq生成一个列表...我不会为您输入所有内容,但在某些情况下,您可能想要这样做:
XDocument xdoc = XDocument.Parse(xmlString);
...
...
List<Dictionary<string, object>> list = xdoc.Root.Elements().Where(e=>e.Name.LocalName == "diffgram").Select(col => new Dictionary<string, object>() { { col.Name.LocalName.ToString(), col.Value } }).ToList();
问候, 史蒂芬
这篇关于将xDocument转换为IEnumerable<;字典<;字符串、对象&>>;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:将xDocument转换为IEnumerable<;字典<;字符串、对象&>>;


猜你喜欢
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04