public void SaveAs(string fileName, bool create, Property.DataOutputFlags flags) { XmlDocument xml = create ? null : Xml; if (null == xml) { xml = new XmlDocument(); xml.AppendChild(xml.CreateElement("ZezeConfig")); if (false == create) { Xml = xml; } } if (flags == Property.DataOutputFlags.All) { BeanDefine.SaveAs(xml, xml.DocumentElement, create); } for (int i = 0; i < _Beans.Count; ++i) { Bean b = _Beans[i]; b.RowIndex = i; b.SaveAs(xml, xml.DocumentElement, create, flags); } using (TextWriter sw = new StreamWriter(fileName, false, Encoding.UTF8)) { xml.Save(sw); } }
public void SaveAs(XmlDocument xml, XmlElement parent, bool create, Property.DataOutputFlags flags) { XmlElement self = create ? null : Self; XmlElement selfList = create ? null : SelfList; if (null == self) { // new self = xml.CreateElement(Name); parent.AppendChild(self); if (false == create) { Self = self; } } else { if (self.Name != Name) { // Name Change XmlElement e = xml.CreateElement(Name); parent.ReplaceChild(e, self); self = e; if (null != selfList) { self.AppendChild(selfList); } } } if (flags == Property.DataOutputFlags.All) { if (GridColumnNameWidth > 0) { self.SetAttribute("nw", GridColumnNameWidth.ToString()); } if (GridColumnValueWidth > 0) { self.SetAttribute("vw", GridColumnValueWidth.ToString()); } } if (_Beans.Count > 0) // 这里没有判断Type,直接根据数据来决定怎么保存。 { if (null == selfList) { selfList = xml.CreateElement("list"); self.AppendChild(selfList); if (false == create) { SelfList = selfList; } } for (int i = 0; i < _Beans.Count; ++i) { Bean b = _Beans[i]; b.RowIndex = i; b.SaveAs(xml, selfList, create, flags); } } else { self.InnerText = Value; } }