我的xml:
<Scenes>
<Scene Index="0" Channel="71" Name="Scene1" />
<Scene Index="1" Channel="71" Name="Scene2" />
<Scene Index="2" Channel="71" Name="Scene3" />
</Scenes>
我的代码:
var elements = new List<List<string>>();
var attributtes = new List<string>();
XPathExpression expr1 = nav.Compile("//Scene/@*");
XPathNodeIterator iterator1 = nav.Select(expr1);
while (iterator1.MoveNext())
{
XPathNavigator nav2 = iterator1.Current.Clone();
attributtes.Add(nav2.Value);
}
这会将所有元素的所有属性添加到“attributtes”列表中。
但是,如何仅将属性添加到列表“attributtes”,然后将该列表添加到“元素”?所以我得到一个包含元素列表的元素列表。 希望我对自己想要完成的任务有足够的了解。
答案 0 :(得分:2)
这是你的答案:
var elements = new List<List<string>>();
// this selects all 'Scene' elements
XPathNodeIterator elem = nav.Select("//Scene");
while(elem.MoveNext())
{
XPathNavigator elemNav = elem.Current.Clone();
var attributes = new List<string>();
// now select all attributes of this particular 'Scene' element
XPathNodeIterator attr = elemNav.Select("@*");
while(attr.MoveNext())
{
attributes.Add(attr.Current.Value);
}
elements.Add(attributes);
}
这将创建一个元素列表,每个元素都有一个单独的属性列表。