C#linq到xml,获取包含节点的列表?
这是我正在使用的测试xml:C#linq到xml,获取包含节点的列表?,c#,treeview,linq-to-xml,elements,nodes,C#,Treeview,Linq To Xml,Elements,Nodes,这是我正在使用的测试xml: <categories> <category id="1" name="Test1"> <category id="2" name="Test2"> <misc id="1"></misc> </category> </category> <category id="3" name="Test3"> <misc id=
<categories>
<category id="1" name="Test1">
<category id="2" name="Test2">
<misc id="1"></misc>
</category>
</category>
<category id="3" name="Test3">
<misc id="2"></misc>
</category>
但是我如何在树视图中保持结构
这应该是这样的:
测试1
->测试2
测试3如果我没弄错的话,可能是这样的吧?(我没有测试过) “我只想要具有名称类别的元素”-我不明白你在这里的意思?但是,如果您只想选择那些具有“name”属性的元素,那么这应该可以:
...
var d = from t in e.Elements("category")
where t.Attribute("name") != null
select new Category()
...
我知道上面的部分(“name”属性部分)不是您想要的,但我把它放在那里了。我已针对以下内容测试了代码:
XDocument doc = XDocument.Parse(@"<categories>
<category id=""1"" name=""Test1"">
<category id=""2"" name=""Test2"">
<misc id=""1""></misc>
</category>
</category>
<category id=""3"" name=""Test3"">
<misc id=""2""></misc>
</category>
</categories>");
var structure = CategoryTreeStructure(doc.Root);
XDocument doc=XDocument.Parse(@)
");
var结构=类别树结构(文档根);
事实上,我找到了这个链接,它完全符合你的要求:)而且它没有LINQ,所以我认为它应该得到另一个答案
对不起,我的错。我只想要称为category的元素,比如:啊,好吧,那么上面的代码应该可以:)我现在已经测试过了,它可以工作了。我对代码做了一些小的修改。
var structure = CategoryTreeStructure(doc.Root);
...
var d = from t in e.Elements("category")
where t.Attribute("name") != null
select new Category()
...
XDocument doc = XDocument.Parse(@"<categories>
<category id=""1"" name=""Test1"">
<category id=""2"" name=""Test2"">
<misc id=""1""></misc>
</category>
</category>
<category id=""3"" name=""Test3"">
<misc id=""2""></misc>
</category>
</categories>");
var structure = CategoryTreeStructure(doc.Root);