簡體   English   中英

從Web服務XML響應中提取鍵值對

[英]Extracting a key-value pair from a web service XML response

我正在使用Visual Studio 2010中的C#和.NET 2.0框架。我正在嘗試提取由Web服務返回的URL。 此URL在包含鍵和值的要素數組中返回。 (我認為這與我在學校學到的東西類似,稱為哈希表 )。

我的intellisense沒有找到任何有用的東西,我無法弄清楚我做錯了什么。

這是代碼。 serverInfo.FeatureSet[]什么?

public string wfl_reqURL(string username, string password)
{
    MyWorkflow.ServerInfo serverInfo = new MyWorkflow.ServerInfo();
    myURL = serverInfo.FeatureSet[];
}

這是它在WSDL中的描述。 FeatureSet作為帶有字符串鍵和字符串值的數組返回:

<ServerInfo>
  <FeatureSet>
    <Feature>
      <Key>FileUploadUrl</Key>
      <Value>http://localhost/transferindex.php</Value>
    </Feature>
  </FeatureSet>
</ServerInfo>

我是否提供了足夠詳細的問題? 我發現的大部分信息似乎都是關於如何在Web服務中創建這樣的數組,而不是像我想要的那樣 Web服務中選擇一個。

如果你正在使用c#3.5那么linq中的東西就像

myURL = serverInfo.FeatureSet.First(o=>o.Key == "FileUploadUrl").Value

嘗試這樣的事情:

object neededItem = null;
foreach (string item in serverInfo.FeatureSet.Keys)
{
    if (item == "FileUploadUrl")
    {
        neededItem = serverInfo.FeatureSet[item];
        break;
    }
}
if (neededItem != null)
{
    //Do something
}

問題出在數據類型中。 將代碼更改為此解決了問題,盡管是以混亂的方式。 我認為它與類型及其定義方式有關...無論是字典還是數組,但它與我想的有點不同......

foreach( MyWorkFlow.Feature feature in serverInfo.FeatureSet) {
    if (feature.Key.ToString() == "FileUploadUrl") {
        string myURL = feature.Value;
        Console.WriteLine(myURL);
    }

暫無
暫無

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

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