Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.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#中通过属性名获取XML节点筛选的值?_C#_Xml_Xmldocument_Xmlnode_Xml Attribute - Fatal编程技术网

如何在C#中通过属性名获取XML节点筛选的值?

如何在C#中通过属性名获取XML节点筛选的值?,c#,xml,xmldocument,xmlnode,xml-attribute,C#,Xml,Xmldocument,Xmlnode,Xml Attribute,这是我的XML文件的一部分 <summary> <testcase> <result value="-45">100</result> <result value="0">200</result> <result value="45">300</result> </testcase> <testcase> <resu

这是我的XML文件的一部分

<summary>
  <testcase>  
    <result value="-45">100</result>
    <result value="0">200</result>
    <result value="45">300</result>
  </testcase>
  <testcase>    
    <result value="-45">1000</result>
    <result value="0">2000</result>
    <result value="45">3000</result>
  </testcase>  
 <testcase>    
    <result value="-45">0.1</result>
    <result value="0">0.2</result>
    <result value="45">0.3</result>
  </testcase>
</summary>

100
200
300
1000
2000
3000
0.1
0.2
0.3
我需要通过按属性名过滤来获取元素值

作为一个例子,我需要得到attribute=45的所有值 答案是3003000,0.3

XmlDocument doc=新的XmlDocument();
doc.Load(_xmlFilePath);
XmlNodeList nodelist=doc.SelectNodes(//testcase);
for(int i=0;i
但上面的代码给出了以下错误消息

对象引用未设置为对象的实例

任何建议都将不胜感激


谢谢。

这可能会帮助您解决问题

XmlDocument doc = new XmlDocument();
doc.Load(_xmlFilePath);
XmlNodeList nodelist = doc.SelectNodes("//result[@value=45]");
for (int i = 0; i < nodelist.Count; i++)
{
    double value = double.Parse(nodelist[i].InnerText);
    Console.WriteLine("value : " + value);
}
XmlDocument doc=新的XmlDocument();
doc.Load(_xmlFilePath);
XmlNodeList nodelist=doc.SelectNodes(//result[@value=45]);
for(int i=0;i
这可能会帮助您解决问题

XmlDocument doc = new XmlDocument();
doc.Load(_xmlFilePath);
XmlNodeList nodelist = doc.SelectNodes("//result[@value=45]");
for (int i = 0; i < nodelist.Count; i++)
{
    double value = double.Parse(nodelist[i].InnerText);
    Console.WriteLine("value : " + value);
}
XmlDocument doc=新的XmlDocument();
doc.Load(_xmlFilePath);
XmlNodeList nodelist=doc.SelectNodes(//result[@value=45]);
for(int i=0;i
这可能会帮到你

XDocument xdc = XDocument.Load(YourXMLFile);
var rslt = xdc.Descendants("result").Where(x => x.Attribute("value").Value == "45");
string rsltstr = string.Empty;
foreach(XElement el in rslt)
{
    rsltstr = rsltstr + el.Value + ", ";
}


这可能对你有用

XDocument xdc = XDocument.Load(YourXMLFile);
var rslt = xdc.Descendants("result").Where(x => x.Attribute("value").Value == "45");
string rsltstr = string.Empty;
foreach(XElement el in rslt)
{
    rsltstr = rsltstr + el.Value + ", ";
}