Take a look at below example:
Dim xdoc As XDocument = XDocument.Load("FullFileName.xml")
Dim deviceTypes2find As String() = {"1", "4"}
Dim propTypes2find As String() = {"56", "71"}
Dim result = xdoc.Descendants("Property"). _
Where(Function(x) propTypes2find.Any(Function(a) x.Attribute("Type").Value=a) AndAlso _
deviceTypes2find.Any(Function(y) x.Parent.Attribute("Type").Value = y)). _
Select(Function(x) Tuple.Create(x.Parent.Attribute("Type").Value, x.Attribute("Type").Value, x.Value)). _
ToList()
Console.WriteLine(String.Format("{0}{1}{2}{1}{3}", "DeviceTypeId", Microsoft.VisualBasic.vbTab, "PropertyTypeId", "Value"))
For Each t As Tuple(Of String, String, String) In result
Console.WriteLine(String.Format("{0}{1}{2}{1}{3}", t.Item1, Microsoft.VisualBasic.vbTab, t.Item2, t.Item3))
Next
Result:
DeviceTypeId PropertyTypeId Value
4 56 192.168.242.192
4 56 192.168.242.193