我是vb.net中xml解析器的新手,需要xml和vb.net专家的帮助:))
我需要找到给定值的属性名称,但属性以所需文本开头。
我的xml字符串是这样的
<Level1>
<Level2>
<Level3 Group="FirstGroup1" Value="FALSE"/>
<Level3 Group="**FirstGroup2**" Value="TRUE"/>
<Level3 Group="FirstGroup3" Value="FALSE"/>
<Level3 Group="FirstGroup4" Value="FALSE"/>
<Level3 Group="FirstGroup5" Value="FALSE"/>
<Level3 Group="SecondGroup1" Value="FALSE"/>
<Level3 Group="SecondGroup2" Value="FALSE"/>
<Level3 Group="SecondGroup3" Value="FALSE"/>
<Level3 Group="SecondGroup4" Value="TRUE"/>
<Level3 Group="SecondGroup5" Value="FALSE"/>
<Level3 Group="SecondGroup6" Value="FALSE"/>
</Level2>
</Level1>
我想要来自FirstGroup *的属性名称,其值为True。在这种情况下,我期待FirstGroup2。
我将不胜感激。
感谢。
答案 0 :(得分:1)
由于您没有提供任何代码,因此我不知道您要使用什么API来解析XML,而是使用LINQ to XML和XML literals:
Dim xml =
<Level1>
<Level2>
<Level3 Group="FirstGroup1" Value="FALSE"/>
<Level3 Group="FirstGroup2" Value="TRUE"/>
<Level3 Group="FirstGroup3" Value="FALSE"/>
<Level3 Group="FirstGroup4" Value="FALSE"/>
<Level3 Group="FirstGroup5" Value="FALSE"/>
<Level3 Group="SecondGroup1" Value="FALSE"/>
<Level3 Group="SecondGroup2" Value="FALSE"/>
<Level3 Group="SecondGroup3" Value="FALSE"/>
<Level3 Group="SecondGroup4" Value="TRUE"/>
<Level3 Group="SecondGroup5" Value="FALSE"/>
<Level3 Group="SecondGroup6" Value="FALSE"/>
</Level2>
</Level1>
Dim firstGroup = (
From l3 In xml...<Level3>
Where l3.@Group.StartsWith("FirstGroup") AndAlso
l3.@Value = "TRUE"
Select l3.@Group
).FirstOrDefault()
Console.WriteLine(firstGroup)
FirstGroup2