public static void Main()
const string xml = @"<root>
<property name='locale' value='en-EN' />
<property name='path' value='c:\program files\IBM' />
<property name='option' value='licence' />
<package kind='offering' name='IBM tools'>
<property name='cic.name' value='IBM Studio'/>
<property name='cic.version' value='13.4'/>
<location id='Microsoft'>
<property name='locale' value='en-EN' />
<property name='path' value='c:\program files\MS' />
<property name='option' value='licence' />
<package kind='offering' name='Microsoft'>
<property name='cic.name' value='Windows XP'/>
<property name='cic.version' value='10.3.2'/>
var doc = XDocument.Parse(xml);
from package in doc.Descendants("package")
Name = (string) package.Elements("property")
.Where(x => (string) x.Attribute("name") == "cic.name")
Version = (string) package.Elements("property")
.Where(x => (string) x.Attribute("name") == "cic.version")
foreach (var result in results)
Console.WriteLine("Name: {0}, Version: {1}", result.Name, result.Version);