我有一个包含许多名称的XML,就像一个列表:
<apelidos>
<apelido>Casmilo</apelido>
<apelido>Castro</apelido>
</apelidos>我的模型是这样的:
namespace IdCel.Model
{
[XmlTypeAttribute(AnonymousType = true)]
public class apelidos
{
[XmlArray("apelidos")]
[XmlArrayItem("apelidos")]
public List<apelido> apelidosNomes { get; set; }
public apelidos()
{
apelidosNomes = new List<apelido>();
}
}
public class apelido
{
[XmlElement(ElementName = "apelido")]
public string apelidoNome { get; set; }
}
}还有我的XmlSerializer
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;但是它不起作用,我用没有列表的XML做同样的代码,它工作得很好
发布于 2015-04-21 22:01:19
如果您只需要读取apelido标记的内容,那么使用Linq To XML会快得多。例如:
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;这将为您提供一个包含所有名称的IEnumerable<string>作为结果。
编辑:要从web加载XML,您可以执行以下操作:
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
WebResponse response = request.GetResponse();
var doc = XDocument.Load(response.GetResponseStream());发布于 2015-04-21 23:21:22
现在它起作用了!我这样做了:
[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;https://stackoverflow.com/questions/29773863
复制相似问题