Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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# 在C中,如何从XMLDocument中选择特定数据?_C#_Xml_Asp.net Mvc_Xml Parsing - Fatal编程技术网

C# 在C中,如何从XMLDocument中选择特定数据?

C# 在C中,如何从XMLDocument中选择特定数据?,c#,xml,asp.net-mvc,xml-parsing,C#,Xml,Asp.net Mvc,Xml Parsing,我通过网络请求得到以下回复 <Shofar Target_="Base" > <RapidOnSite_Pump Key="1" State="Idle" Amount="20" /> <RapidOnSite_Pump Key="2" State="Idle" Amount="15" /> <RapidOnSite_Pump Key="3" State="Despencing" Amount="25"/> - <Verb_

我通过网络请求得到以下回复

<Shofar Target_="Base" >
  <RapidOnSite_Pump Key="1" State="Idle" Amount="20" /> 
  <RapidOnSite_Pump Key="2" State="Idle" Amount="15" /> 
  <RapidOnSite_Pump Key="3" State="Despencing" Amount="25"/> 
- <Verb_List>
     <Verb_Item Key="1" Execute="RapidOnSite_Pump_AdHoc" Result="OK" 
      Detail="All Pumps►5" /> 
  </Verb_List>

但是通过这个代码,我没有得到要求。有人能帮我吗?

你可以使用XElement来完成你的工作,除非你想坚持使用XmlDocument

XElement rootElem = XElement.Load(new StringReader(xmlStr));
var rapidOnSitePumpWhichAreNotIdle = rootElem.Descendants("RapidOnSite_Pump").Where(e => e.Attribute("State").Value != "Idle");

最后,您将得到IEnumerable,可以对其进行迭代。

在聊天中显示真实的xml。它包含必须考虑的名称空间

mainxml.LoadXml(responseFromServer);

XmlNamespaceManager manager = new XmlNamespaceManager(mainxml.NameTable);
manager.AddNamespace("ns", "http://ShofarNexus.com");

XmlNodeList xnList = mainxml.SelectNodes("/ns:Shofar/ns:RapidOnSite_Pump [@State!='Idle']", manager);

您必须使用XmlDocument,也可以使用LINQ转换XML?任何东西。我只需要必要的响应。只需检查您的代码-它工作正常。一个节点被返回你确定吗?为什么我当时没有得到。让我显示完整的代码public void GetCartResponse{string responseFromServer=;responseFromServer=RetailLibrary.BusinessObject.Common.WebRequestCallMyURL;如果responseFromServer!={XmlDocument mainxml=new XmlDocument;mainxml.LoadXmlresponseFromServer;XmlNodeList xnList=mainxml.SelectNodes/Shofar/RapidOnSite_Pump[@State!='Idle'];}}非常感谢先生。现在它工作正常。这是我的新知识。非常感谢。
mainxml.LoadXml(responseFromServer);

XmlNamespaceManager manager = new XmlNamespaceManager(mainxml.NameTable);
manager.AddNamespace("ns", "http://ShofarNexus.com");

XmlNodeList xnList = mainxml.SelectNodes("/ns:Shofar/ns:RapidOnSite_Pump [@State!='Idle']", manager);