2014-06-09 59 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而不僅僅是第一級?

謝謝。

+0

你使用什麼編程語言? –

+0

我正在使用Visual Studio 2010 c# – SDanks

回答

0

我認爲你的意思是解析XML字符串並返回root節點。在這種情況下,這是你正在尋找的How to Parse XML with XmlReader

+0

我打算做的是基於cmd(在這種情況下是登錄請求),然後我想將數據xml傳遞給另一個期望不同標籤的閱讀器。所以如果cmd是searchFi,它可能在數據節點中有不同類型的標籤。然後,我會使用switch語句將數據傳遞給另一個xmlreader函數。 – SDanks