T&GT;名单,LT的XML序列化; - XML根 [英] XML Serialization of List<T> - XML Root
本文介绍了T&GT;名单,LT的XML序列化; - XML根的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
#2(.NET 2.0)第一个问题:
First question on Stackoverflow (.Net 2.0):
所以,我想用下面的返回列表的XML:
So I am trying to return an XML of a List with the following:
public XmlDocument GetEntityXml()
{
StringWriter stringWriter = new StringWriter();
XmlDocument xmlDoc = new XmlDocument();
XmlTextWriter xmlWriter = new XmlTextWriter(stringWriter);
XmlSerializer serializer = new XmlSerializer(typeof(List<T>));
List<T> parameters = GetAll();
serializer.Serialize(xmlWriter, parameters);
string xmlResult = stringWriter.ToString();
xmlDoc.LoadXml(xmlResult);
return xmlDoc;
}
现在这个将用于我已经定义了多个实体。
Now this will be used for multiple Entities I have already defined.
说我想获得名单,LT的XML;猫&GT;
该XML会是这样的:
<ArrayOfCat>
<Cat>
<Name>Tom</Name>
<Age>2</Age>
</Cat>
<Cat>
<Name>Bob</Name>
<Age>3</Age>
</Cat>
</ArrayOfCat>
有没有为我获得这些实体时,得到同样的根所有的时间?一个办法
Is there a way for me to get the same Root all the time when getting these Entities?
例如:
<Entity>
<Cat>
<Name>Tom</Name>
<Age>2</Age>
</Cat>
<Cat>
<Name>Bob</Name>
<Age>3</Age>
</Cat>
</Entity>
另外请注意,我不打算反序列化XML回列表&LT; CAT和GT;
推荐答案
有一个更简单的方法:
public XmlDocument GetEntityXml<T>()
{
XmlDocument xmlDoc = new XmlDocument();
XPathNavigator nav = xmlDoc.CreateNavigator();
using (XmlWriter writer = nav.AppendChild())
{
XmlSerializer ser = new XmlSerializer(typeof(List<T>), new XmlRootAttribute("TheRootElementName"));
ser.Serialize(writer, parameters);
}
return xmlDoc;
}
这篇关于T&GT;名单,LT的XML序列化; - XML根的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文