【发布时间】:2012-10-03 19:47:11
【问题描述】:
所以我有一些通常看起来像这样的 XML
<wd:Data xmlns:wd="urn:com.foo.bar/GetResult">
<wd:Result>
<wd:field1>lorem</wd:field1>
<wd:field2>ipsum</wd:field2>
<wd:field3>dolor</wd:field3>
<wd:field4>sit</wd:field4>
</wd:Result>
</wd:Data>
命名空间以“wd”为前缀
我希望能够获取<wd:Result>...</wd:Result> 中的每个元素并创建一个新的KeyValuePair<string, string>,其中键是元素名称,值是元素的值,如下所示:
{"field1", "lorem"} {"field2", "ipsum"} {"field3", "dolor"} {"field4", "坐"}
我的困难在于命名空间前缀。我是 LINQ 的新手,但我总是能够得到这样的东西来处理这样的代码:
var data = XElement.Parse(theXml);
XNamespace ns = "urn:com.foo.bar/GetResults";
var result = data.Elements(ns + "Result")
.Select(x => new KeyValuePair<string, string>(x.Name.LocalName, x.Value))
.ToList();
我应该如何查询这些数据以产生所需的结果?
我没有与 LINQ 结婚,所以社区认为最好的我都会接受。
【问题讨论】:
-
您是否意识到您的问题与命名空间无关?
标签: c# linq linq-to-xml xelement