2014-06-09 2 views
0

망가이 검색 심지어 방법을 알고 XML과 객체의 일부를 반환하지만 XML 문자열을 역 직렬화 할 때, 나는 그것이 XML의 첫 번째 수준 반환 할 :XML의 직렬화가와

문자열 : <pkt><cmd>logreq</cmd><data><name>scott</name><password>abc123</password><designator>R233</designator><token>123456</token></data></pkt>

이 코드 사용하는 경우 :

class xmlFunctions 
{ 
    public Cmd GetCmd(string sXML) 
    { 
     Cmd cmd = new Cmd(); 
     try 
     { 
      var sr = new StringReader(sXML); 
      var xs = new XmlSerializer(typeof(Cmd)); 
      cmd = (Cmd)xs.Deserialize(sr); 
      return cmd; 
     } 
     catch (Exception) 
     {     
      Console.WriteLine("Cannot Parse Input."); 
     } 
     return cmd; 
    } 
} 

을이 내 Cmd를 개체입니다 :

[XmlRoot("pkt")] 
public class Cmd 
{ 
    public string cmd { get; set; } 
    public string data { get; set; } 

} 

나는 Cmd.cmd = logreq 및 Cmd.data = <name>scott</name><password>abc123</password><designator>R233</designator><token>123456</token>

하지만 데이터 = 스콧 것을 기대.

위의 XML 부분을 반환하려면 어떻게해야합니까? 그것은 첫 번째 수준뿐만 아니라 모든 XML을 deserialize하고 싶어하는 것 같습니다.

감사합니다.

+0

어떤 프로그래밍 언어를 사용하십니까? –

+0

Visual Studio 2010을 사용하고 있습니다. C# – SDanks

답변

0

당신이 정말로 의미하는 것 같아요 XML 문자열을 구문 분석하고 root 노드를 반환하십시오.이 경우 이것은 당신이 찾고있는 것입니다 How to Parse XML with XmlReader

+0

내가 수행 할 계획은 cmd (이 경우 로그인 요청)를 기반으로합니다. 다른 태그를 예상하는 다른 판독기에 데이터 xml을 전달하고 싶습니다. 따라서 cmd가 searchFi 인 경우 데이터 노드에 다른 유형의 태그가있을 수 있습니다. 그런 다음 switch 문을 사용하여 데이터를 다른 xmlreader 함수로 전달합니다. – SDanks