如何在通配符中搜索 xml "attribute name"?



我是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。

我很感激你的帮助。

谢谢。

由于您没有提供任何代码,我不知道您想使用什么API来解析XML,但使用LINQ到XML和XML文字:

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

相关内容

最新更新