当我指定VM名称值时,我想从附加的xml文件中读取浏览器和语言值。我试着运行下面的方法一段时间,但我不断收到错误。任何人都可以建议我的代码修复或更好的方式来获得我想要的? Thnaks非常。 J.如何使用LINQ读取指定的xml节点值?
<?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>
下面是我使用的尝试让浏览器或语言值码:
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;
}
}
这样称呼它: ReadVMSettings( “EN2008”, “客人”, “语言”);
Thnaks。
更具体 - 什么你有错误吗?谢谢。 – mayabelle