4
我试图从XML中将子子值放入使用LINQ的字典集合中。我已经完成了列表和自定义集合,它们遵循与XML相同的结构,但无法搜索特定的值。如果我知道parentName,childName和subChildName,我希望能够找到subChildProperty1.value和subChildProperty2.value,而不必迭代整个集合和每个后续子集合,因为我必须处理列表。这可能不是最好的实施方式,我很乐于接受建议,但仍想弄清楚如何完成这项工作。那么这将让我有一本字典项是:将XML转换为VB.NET字典
key = "parentNameValue1.childNameValue1.subchildNameValue1.subChildProperty1"
value = 0
,我可以只连接字符串,形成一个特定的键以及搜索该键返回一个值。
XML:
<root>
<parent>
<parentName>parentNameValue1</parentName>
<child>
<childName>childNameValue1</childName>
<subchild>
<subchildName>subchildNameValue1</subchildName>
<subChildProperty1>0</subChildProperty1>
<subChildProperty2>5</subChildProperty2>
</subchild>
<subchild>
<subchildName>subchildNameValue2</subchildName>
<subChildProperty1>0</subChildProperty1>
<subChildProperty2>10</subChildProperty2>
</subchild>
</child>
</parent>
<root>
这个问题有点类似于this question here但我不能让代码在VB中工作了我的申请。
我是新来的SO(和VB),所以如果我的礼节不正确,我很抱歉。
谢谢!我发现“Extract the properties”部分中的代码使用了LINQ,但我从来没有在查询方式之外看到过使用LINQ。这个技术叫什么名字? – user1424311
@ user1424311:语法'xml。'被称为[* LINQ to XML *](http://msdn.microsoft.com/zh-cn/library/bb384974.aspx)。 'list.Where(Function(x)...)'是另一种写作方式'From x In list Where ...'(两者都属于* LINQ to Objects *)。前者直接使用LINQ的方法(例如[Enumerable.Where](http://msdn.microsoft.com/en-us/library/bb534803.aspx)),而后者使用[VB的查询操作符](http:///msdn.microsoft.com/en-us/library/bb384504.aspx)。 –
Heinzi
'XDocument.Load'不会产生一个值。 – Urbycoz