动态创建嵌套的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文档效果如下所示:

浙公网安备 33010602011771号