I'd like to read the browser and language values from the attached xml file when I specify the VM name value. I've tried to run the below method a number of time but I keep getting errors. Can anybody please suggest a fix for my code or a better way to get what I want? Thnaks very much. J.
<?xml version='1.0' encoding='utf-8'?>
<automationSettings>
<!--VM settings on ESX Server-->
<VM name="DE-2K8" language="de" powerOn="true">
<vmClients>
<vmClient name="ITXP" language="it"/>
</vmClients>
<guest>
<browser value = "firefox"/>
<language value = "de"/>
</guest>
</VM>
<VM name="EN2008" language="en" powerOn="true">
<vmClients>
<vmClient name="IT-2K8R2ENT64X" language="it"/>
</vmClients>
<guest>
<browser value = "chrome"/>
<language value = "en"/>
</guest>
</VM>
</automationSettings>
Here's the code I'm using to try to get the browser or language values:
public static string ReadVMSettings(string systemName, string section, string name)
{
try
{
systemsFilePath = @"C:\Text.xml";
Console.WriteLine("Systems.xml path is: " + systemsFilePath);
XDocument systemXML = XDocument.Load(systemsFilePath);
var result = from vm in systemXML.Descendants("automationSettings")
.Descendants("VM")
.Descendants(section)
where vm.Attribute("name").Value == systemName
select vm.Element(name).Attribute("value").Value;
return result.First();
}
catch (Exception ex)
{
Console.WriteLine("ReadVMSettings exception: " + ex.ToString());
return string.Empty;
}
}
Call it like this: ReadVMSettings("EN2008", "guest", "language");
Thnaks.