/// <summary> /// parse the response /// </summary> /// <returns></returns> public static Parameters ParseParams(XmppXElement el) { var al = new Parameters(); // If an error occurred, the server will return fault var fault = el.Element <Fault>(); if (fault != null) { var structParameter = ParseStruct(fault.Element <Struct>(true)); al.Add(new XmlRpcException((Int16)structParameter["faultCode"], (string)structParameter["faultString"])); } else { XmppXElement elParams = el.Element <Params>(); var nl = elParams.Elements <Param>(); foreach (var p in nl) { var value = p.Element <Value>(); if (value != null) { al.Add(ParseValue(value)); } } } return(al); }
/// <summary> /// parse a response array /// </summary> /// <param name="elArray">The el array.</param> /// <returns></returns> private static Parameters ParseArray(XmppXElement elArray) { #region Xml sample //<array> // <data> // <value><string>one</string></value> // <value><string>two</string></value> // <value><string>three</string></value> // <value><string>four</string></value> // <value><string>five</string></value> // </data> //</array> #endregion var data = elArray.Element <Data>(); if (data != null) { var list = new Parameters(); var values = data.Elements <Value>(); foreach (var el in values) { list.Add(ParseValue(el)); } return(list); } return(null); }