【发布时间】:2013-03-13 18:59:41
【问题描述】:
我有一个类似于下面的 xml。
<rowset>
<row attribute1="somevalue1" attribute2="somevalue2" attribute3="somevalue3" attribute4="somevalue4"/>
<row attribute1="somevalue1" attribute2="somevalue2" attribute3="somevalue3" attribute4="somevalue4"/>
<row attribute1="somevalue1" attribute2="somevalue2" attribute3="somevalue3" attribute4="somevalue4"/>
<row attribute1="somevalue1" attribute2="somevalue2" attribute3="somevalue3" attribute4="somevalue4"/>
</rowset>
我要做的是返回一个列表,其中每一行都是一个列表项,属性将是子项。我得到的最接近的是以下语句,但我无法让它返回通过计数和查看在调试中可以看到的值。
var skillslist = testmultilist.Descendants("row").Select(a => a.Attributes()).ToList();
任何帮助将不胜感激。
这就是我最后的做法。
var skillslist = testmultilist.Descendants("row").Select(a => a.Attributes().Select(c => c.Value).ToList()).ToList();
我可以使用“string derp = testmultilist[6][3]”从中提取字符串。这给出了第七行的第四个 somevalue。
【问题讨论】:
-
我不确定您所说的“无法通过计数和查看来返回我在调试中可以看到的值”是什么意思。当您尝试在代码中迭代
skillslist时会发生什么? -
System.Xml.Linq.XElement+
d_0 是我为每个列表项得到的。通过右键单击技能列表,单击加号,然后单击结果,它会显示子项和值,即 somevalue1、somevalue2 等。 -
伙计,我的回答是这样做的(你编辑到你的问题中)所以现在我很困惑你还需要什么?
-
抱歉,我从未在第一次输入您的示例中的第二个 ToList。标记为正确,因为第一次是正确的;)谢谢。