如果name属性为X,则获取value属性的内容



我正在努力与代码在c#获取值取决于从XML的第一个参数:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<TestRunParameters>
<Parameter name="browser" value="chrome" />
<Parameter name="browserVersion" value="101.0"/>
<Parameter name="os" value="WIN11"/>
<Parameter name="build" value=""/>
</TestRunParameters>
</RunSettings>

我想检查参数名称是否为浏览器,然后从value中获取其内容.我能够通过SelectNodes("//@value")node[0].Value获得这些值,但我想知道是否有另一种方法可以在不指定位置的情况下获得这些值。下面是我的代码:

var filename = @"../../../browser.runsettings";
var xmlDoc = new XmlDocument();
xmlDoc.Load(filename);
XmlNodeList node = xmlDoc.SelectNodes("//@value");
var browserValue = node[0].Value;

提前感谢您的帮助

我认为你应该循环思考他们,并检查如果名称是浏览器,然后使用的值。像这样的代码应该可以

foreach (XmlNode node in nodes)
{
if (node.Name != "Browser") continue;

browserValue = node.Value;
break;
}

您也可以使用.SelectSingleNode()而不是.SelectNodes()获得单节点

var filename = @"../../../browser.runsettings";
var xmlDoc = new XmlDocument();
xmlDoc.Load(filename);
XmlNode node = xmlDoc.SelectSingleNode("//@value");
var browserValue = node.Value;

最新更新