XML反序列化并将对象的一部分作为XML返回

时间:2014-06-09 20:50:22

标签: c# xml serialization

甚至不知道如何搜索这个,但是当我反序列化一个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>

但数据= scott。

如何让它返回上面的XML部分?它似乎想要反序列化所有xml而不只是第一级?

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你的意思是解析XML字符串并返回root节点。在这种情况下,这就是您正在寻找的How to Parse XML with XmlReader