C# XmlSerializer Web响应
我有很多名称的XML,如列表:C# XmlSerializer Web响应,c#,xml,xmlserializer,C#,Xml,Xmlserializer,我有很多名称的XML,如列表: <apelidos> <apelido>Casmilo</apelido> <apelido>Castro</apelido> </apelidos> 但是它不起作用,我用XML编写了同样的代码,没有列表,它工作得很好如果您只需要阅读apelido标记的内容,那么在使用时会快得多。例如: var xml = @"<apelidos>
<apelidos>
<apelido>Casmilo</apelido>
<apelido>Castro</apelido>
</apelidos>
但是它不起作用,我用XML编写了同样的代码,没有列表,它工作得很好如果您只需要阅读
apelido
标记的内容,那么在使用时会快得多。例如:
var xml = @"<apelidos>
<apelido>Casmilo</apelido>
<apelido>Castro</apelido>
</apelidos>";
var doc = XDocument.Parse(xml);
var apelidos = from apelido in doc.Descendants("apelido")
select apelido.Value;
现在成功了!
我这样做:
[Serializable()]
public class apelidos
{
[System.Xml.Serialization.XmlElement("apelido")]
public List<string> apelido { get; set; }
}
得到的错误是什么?没有错误,只是没有取消序列化XML!XmlArrayItem引用的是“apelido”,它不应该是“apelido”吗?此外,在这种情况下,类apelido应该将XmlText放在apelidoNome上,或者可以使用字符串列表而不是特殊类;)@user1887732:您在这里给出的XML有多完整?另外,与其在这里使用var作为结果,也许您可以让它对我们更友好一点,并显示您期望的类型?Icepickle,我尝试了以下方法:
code[XmlArray(“apelidos”)][XmlArrayItem(“apelido”)]public List apelido{get;set;}
但它也不起作用。我如何用这种方法获取在线XML?我做到了,但我的归来不是“阿皮利多”名单,对吧?没错。正如我所说,它是一个IEnumerable
。要获取apelido对象的列表,您需要执行以下操作:var-apelidos=(从in-doc.subjections(“apelido”)选择new-apelido{apelidoNome=a.Value})。ToList()
var xml = @"<apelidos>
<apelido>Casmilo</apelido>
<apelido>Castro</apelido>
</apelidos>";
var doc = XDocument.Parse(xml);
var apelidos = from apelido in doc.Descendants("apelido")
select apelido.Value;
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
WebResponse response = request.GetResponse();
var doc = XDocument.Load(response.GetResponseStream());
[Serializable()]
public class apelidos
{
[System.Xml.Serialization.XmlElement("apelido")]
public List<string> apelido { get; set; }
}
HttpWebRequest request = WebRequest.Create(uri)
as HttpWebRequest;
XmlSerializer ser = new XmlSerializer(objetoLista.GetType());
WebResponse response = request.GetResponse();
var result = ser.Deserialize(response.GetResponseStream());
return result;