Bom dia Meu Amigo não entendo muito de VB , porém fiz o código em C# e converti ele em VB talvez haverá erros na hora da conversão , mas ficou assim :
Dim ms As New System.IO.MemoryStream()
Dim sw As New System.IO.StreamWriter(ms, System.Text.Encoding.UTF8)
sw.Write("<?xml version=""1.0"" encoding=""utf-8"" ?>")
sw.Write("<elemento>")
sw.Write("<dado name=""PAI_123"" /> ")
sw.Write("<dado name=""PAI_123"" />")
sw.Write("<dado name=""PAI_456"" />")
sw.Write("<dado name=""Filho_789"" />")
sw.Write("<dado name=""Filho_321"" />")
sw.Write("</elemento>")
sw.Flush()
ms.Position = 0
Dim Doc As XElement = XElement.Load(ms)
sw.Close()
sw.Dispose()
sw = Nothing
ms.Close()
ms.Dispose()
ms = Nothing
Dim Lista = Doc.Elements("dado").Where(Function(n) n.Attribute("name").Value.Contains("PAI")).[Select](Function(n) New With { _
Key .Inf = n.Attribute("name").Value _
})
For Each L As var In Lista
Console.WriteLine(L.Inf)
Next
Console.ReadLine()
Já o original em C# é esse :
System.IO.MemoryStream ms = new System.IO.MemoryStream();
System.IO.StreamWriter sw = new System.IO.StreamWriter(ms,System.Text.Encoding.UTF8);
sw.Write("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
sw.Write("<elemento>");
sw.Write("<dado name=\"PAI_123\" /> ");
sw.Write("<dado name=\"PAI_123\" />");
sw.Write("<dado name=\"PAI_456\" />");
sw.Write("<dado name=\"Filho_789\" />");
sw.Write("<dado name=\"Filho_321\" />");
sw.Write("</elemento>");
sw.Flush();
ms.Position = 0;
XElement Doc = XElement.Load(ms);
sw.Close();
sw.Dispose();
sw = null;
ms.Close();
ms.Dispose();
ms = null;
var Lista = Doc.Elements("dado").Where(n => n.Attribute("name").Value.Contains("PAI"))
.Select(n => new { Inf = n.Attribute("name").Value});
foreach (var L in Lista)
{
Console.WriteLine(L.Inf);
}
Console.ReadLine();
Lembre-se que deve ter o using ou imports System.Linq.Xml
Espero ter ajudado.
Davi Murilo Referência Principal : Jesus que ilumina minha mente.
Referência Profissonal : http://www.tidm.com.br