我需要将XmlWriter的XmlWriterSettings的OmitXmlDeclaration属性设置为false,以便不创建XML声明。问题是我从XPathNavigator.AppendChild()方法的调用中创建了XmlWriter。代码如下:如何从XPathNavigator.AppendChild()创建时设置XmlWriter.XmlWriterSettings?
public String GetEntityXml<T>(List<T> entities)
{
XmlDocument xmlDoc = new XmlDocument();
XPathNavigator nav = xmlDoc.CreateNavigator();
using (XmlWriter writer = nav.AppendChild())
{
XmlSerializer ser = new XmlSerializer(typeof(List<T>), new XmlRootAttribute(typeof(T).Name + "_LIST"));
ser.Serialize(writer, entities);
}
StringWriter stringWriter = new StringWriter();
XmlTextWriter xmlTextWriter = new XmlTextWriter(stringWriter);
xmlDoc.WriteTo(xmlTextWriter);
string resultString = stringWriter.ToString();
stringWriter.Close();
xmlTextWriter.Close();
return resultString;
}
任何想法如何序列化列表,并没有XML声明?
在我的回答,我假设你正在试图序列化的XML添加到现有的文档。是这样吗?另外,你是否需要从resultString中省略xml声明? – rsbarro 2012-02-11 14:55:45
rsbarro - 你是对的。我正在寻找获取实体集合的xml序列化,然后将其添加到具有多个序列化的组合文档中。 – 2012-02-12 14:33:52