2010-01-25 7 views
3

Apache Axis 및 SOAP 1.2를 사용하여 구현 된 외부 웹 서비스에 연결하고 있습니다. 웹 서비스는 아래와 같은 지그재그 형 객체 배열을 반환합니다. XML을 보면 xsi : type = "soapenc : Array"가 있습니다.C#의 뒤틀린 배열 구문 분석

C# 2와 C# 3에서이 배열을 파싱하는 가장 깨끗한/최선의 방법은 무엇입니까? 가장 좋은 방법으로 간주됩니다 무엇에

 
- obj object[] {object[][]} 

-[0] object {object[]} 
    -[0] object {string} 
    -[1] object {string} 

-[1] object {object[]} 
    -[0] object {string} 
    -[1] object {bool} 

-[2] object {object[]} 
    -[0] object {string} 
    -[1] object {object[]} 
    -[0] object {object[][]} 
    -[0] object[] 
    -[0] object{string} 
    -[1] object{string) 
+0

지금까지 (코드)를 갖고 있습니까? –

+0

** **로 해석 하시겠습니까? 당신은 xml 언급 - 당신은 원하는 출력과 예제 데이터가 있습니까? –

답변

1

확실하지 (나는.는 C# 3 솔루션은 관심을 것입니다 그래서 C# 2에서 특별히 관심), 그러나 이것은 당신이 그것을 할 수있는 한 방법입니다 . 열거 형 인터페이스를 사용한다면 객체가 배열인지 테스트해야합니다. 각 배열 항목을 재귀 적으로 검사하십시오.

_array = new object[3]; 
    _result = new StringBuilder(); 

    //Populate array here 

    foreach (object item in _array) 
    { 
     ParseObject(item); 
    } 


    private void ParseObject(object value) 
    { 
     if (value.GetType().IsArray) 
     { 
      IEnumerable enumerable = value as IEnumerable; 

      foreach (object item in enumerable) 
      {      
       ParseObject(item); 
      }     
     } 
     else 
     { 
      _result.Append(value.ToString() + "\n"); 
     } 
    }