需要根据其子节点属性值提取xml文件的整个节点

需要根据其子节点属性值提取xml文件的整个节点,xml,vb.net,Xml,Vb.net,这是我的xml: <?xml version="1.0" encoding="utf-8"?> <Tabel> <Members> <Member> <Naam>Cruciatum</Naam> <Kills>1000</Kills> <Deaths>10</Deaths> <KD>100</KD> </Me

这是我的xml:

<?xml version="1.0" encoding="utf-8"?>
<Tabel>
<Members>
  <Member>
    <Naam>Cruciatum</Naam>
    <Kills>1000</Kills>
    <Deaths>10</Deaths>
    <KD>100</KD>
  </Member>
  <Member>
    <Naam>Ghostbullet93</Naam>
    <Kills>10</Kills>
    <Deaths>1</Deaths>
    <KD>10</KD>
  </Member>
</Members>
</Tabel>

十字韧带
1000
10
100
鬼弹头93
10
1.
10
我的问题是,我想提取KD=10的整个成员节点。请帮助我如何进行提取。
我使用vb.net作为编程语言

您可以使用Linq to XML和
XDocument
类:

Dim xml = XDocument.Load("myFilePath")
' or xml = XDocument.Parse("<Tabel> (...) </Tabel>") '

Dim myMember = xml.Root
                  .Element("Members")
                  .Elements("Member")
                  .First(Function(m) CInt(m.Element("KD")) = 10)
Dim xml=XDocument.Load(“myFilePath”)
'或xml=XDocument.Parse(“…”)
Dim myMember=xml.Root
.要素(“成员”)
.要素(“成员”)
.第一(功能(m)CInt(m.Element(“KD”))=10)

之后,
myMember
将是一个与XML中的
Member
元素相对应的
XElement
类实例。如果您真的不想使用LINQ,那么您需要学习XPath

Sub Main()

    'This method uses the Xml DOM in the System.Xml namespace with XPath
    Dim xmlDoc = New XmlDocument()

    xmlDoc.Load("c:\test\test.xml")

    Dim membersNode As XmlNode = xmlDoc.DocumentElement.SelectSingleNode("/Tabel/Members")
    If membersNode IsNot Nothing Then
        Dim memberWithKDof10 As XmlNode = membersNode.SelectSingleNode("Member[KD = '10']")
        If memberWithKDof10 IsNot Nothing Then
            Console.WriteLine("Name of player with KD of 10 is {0}", memberWithKDof10.SelectSingleNode("Naam").InnerText)
        Else
            Console.WriteLine("Player not found!")
        End If
    End If


    'This method uses the XDocument classes found in the System.Xml.Linq namespace
    Dim xDoc As XDocument = XDocument.Load("c:\test\test.xml", LoadOptions.None)

    Dim membersElement As XElement = xDoc.Root.Element("Members")
    If membersElement IsNot Nothing Then
        Dim memberWithKDof10 As XElement = membersElement.Descendants("Member").FirstOrDefault(Function(e) e.Element("KD").Value = "10")
        If memberWithKDof10 IsNot Nothing Then
            Console.WriteLine("Name of player with KD of 10 is {0}", memberWithKDof10.Element("Naam").Value)
        Else
            Console.WriteLine("Player not found!")
        End If
    End If

    Console.WriteLine()
    Console.WriteLine("Press ENTER to exit...")
    Console.ReadLine()
End Sub

亲爱的Marcin但我不熟悉linq你能给我举个vb.net或C的例子吗?那就是vb.net,不是吗?!Marcin你能给我一个概括的例子吗?例如,如果我在member中嵌套了其他标记,而这些嵌套的标记有子节点,其属性为kd。你应该在google上搜索“linq to xml教程”。那里有很多!也许我可以,但我不会。为什么?因为Linq到XML似乎是最好的方式,这就是为什么我的答案看起来是这样的。