2017-08-28 17 views
1

有一個php應用程序將從我創建的web服務讀取結果。 他們希望XML響應就像將響應結果作爲數組而不是網絡服務中的對象

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header /> 
    <s:Body> 
    <WorkResponse xmlns="http://tempuri.org/"> 
     <WorkResult>Name<WorkResult> 
     <WorkResult>Occupation<WorkResult> 
     </WorkResult> 
    </WorkResponse> 
    </s:Body> 

但我的方法是這樣`

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Header /> 
    <s:Body> 
    <WorkResponse xmlns="http://tempuri.org/"> 
     <WorkResult xmlns:a="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 
     <a:string>Name</a:string> 
     <a:string>Occupation</a:string> 
     </WorkResult> 
    </WorkResponse> 
    </s:Body>` 

及以下的回報是我寫在Web服務的方法

public string[] Work() 
    { 
     string[] request = new String[2]; 
     request[0] = "Name"; 
     request[1] = "Occupation"; 
     return request; 
    } 

哪有我確實得到了他們想要的結果。 請幫我走出這個問題

+0

你試過我的回答嗎? –

+0

我正在使用wcf服務 – vithushan

回答

1

如果需要WorkResult節點包含兩個「名稱」「職業」,並在XML同一水平,就可以實現它在您的WebMethod Work()中返回List。這裏是一個例子:

public List<String> Work() 
{ 
    public List<String> result = new List<String>(); 
    result.Add("Name"); 
    result.Add("Occupation"); 

    return result; 
} 
+0

您可以添加對代碼的解釋以及它爲何解決該問題? *僅限代碼*答案通常沒有幫助。 – Zabuza

+0

感謝@Zabuza的建議。 –

+0

我試過了。但結果是相同 _italic_ ** **粗體' 名稱 職業 ' – vithushan

相關問題