动态创建嵌套的xml文档并转为string

private static string GetXmlString(string ContainerValue, List<Tile> listTile)
{
XmlWriterSettings settings = new XmlWriterSettings();

//注意此处的编码方式,否则解析出错
settings.Encoding =new UTF8Encoding(false);

//缩进元素

settings.Indent = true;
MemoryStream fileStream = new MemoryStream();
XmlWriter writer = XmlWriter.Create(fileStream, settings);
//写入文档声明
writer.WriteStartDocument();
//写入嵌套元素
writer.WriteStartElement("Root");
writer.WriteElementString("Container", ContainerValue);
writer.WriteStartElement("Tiles");
foreach (Tile tile in listTile)
{

//将Tile控件序列化为string
string str = System.Windows.Markup.XamlWriter.Save(tile);
//写入单个元素,不嵌套
writer.WriteElementString("Tile", str);
}
writer.WriteEndElement();
writer.WriteEndDocument();

writer.Flush();
writer.Close();
byte[] data = fileStream.ToArray();
string xmlmsg = Encoding.UTF8.GetString(data);
return xmlmsg;
}

生成以后的xml文档效果如下所示:

 

 

 

posted @ 2014-04-25 11:29  sky300  阅读(20)  评论(0)    收藏  举报