簡體   English   中英

在C#中如何從XMLDocument中選擇特定數據?

[英]in C# how to select specific Data from an XMLDocument?

我通過網絡請求得到了以下回復

<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>

從該字符串中,我只想選擇狀態不空閑的節點。

我的密碼

 string responseFromServer = MY_RESPONSE
     XmlDocument mainxml = new XmlDocument();
    mainxml.LoadXml(responseFromServer);

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

但是通過此代碼,我沒有收到要求。 誰能幫幫我嗎?

在聊天中,您將顯示真實的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);

您可以使用XElement完成工作,除非您想堅持使用XmlDocument。

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

最后,您將獲得IEnumerable<XElement>可以對其進行迭代。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM