Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在XmlNode数组中按名称查找值_C#_Asp.net_Arrays_Xml_Xmlnode - Fatal编程技术网

C# 在XmlNode数组中按名称查找值

C# 在XmlNode数组中按名称查找值,c#,asp.net,arrays,xml,xmlnode,C#,Asp.net,Arrays,Xml,Xmlnode,我有以下XML: <UserArea> <Property> <NameValue name="amperage" type="StringType">1</NameValue> </Property> <Property> <NameValue name="attachments" type="StringType">2</NameValue>

我有以下XML:

<UserArea>
    <Property>
        <NameValue name="amperage" type="StringType">1</NameValue>
    </Property>
    <Property>
        <NameValue name="attachments" type="StringType">2</NameValue>
    </Property>
    <Property>
        <NameValue name="noOfBolts" type="StringType">3</NameValue>
    </Property>
    <Property>
        <NameValue name="boreSize" type="StringType">4</NameValue>
    </Property>
</UserArea>

我有大约250个属性元素,所以我不想在这里使用
foreach

您可以始终使用XPath选择节点

XmlNodeList nodes = userAreaNode.SelectNodes("//Property/NameValue[@name='attachments']");

你可以很容易地使用它。将xml解析为,然后遍历
子体,获得第一个元素的值,其
名称
属性等于附件值

var document=XDocument.Parse(xml);
var结果=
document.Root?.subjections()
.FirstOrDefault(e=>e.HasAttributes&&e.Attribute(“名称”)?.Value==“附件”)?.Value??
字符串。空;

它应该是//Property/NameValue[@name='attachments'],因为name属性在NameValue元素上。另外,如果您能保证每个NameValue只有一个实例,您可以使用SelectSingleNode返回单个XmlNode。
XmlNodeList nodes = userAreaNode.SelectNodes("//Property/NameValue[@name='attachments']");