private void SetValue(MemberName name, object value) { if (_name.IsAttribute) { throw new ArgumentException("這個節點只允許文字資料。"); } if (value == null) { if (XmlRecordDictionary.ContainsKey(name)) { XmlRecordDictionary.Remove(name); } if (ChildrenDictionary.ContainsKey(name)) { ChildrenDictionary.Remove(name); } return; } if (value is XmlObject) { XmlObject dl = value as XmlObject; dl.SetName(name.FullName); XmlRecordDictionary[name] = dl; } else { XmlObject newValue = null; if (value is XmlObject) { newValue = value as XmlObject; if (name.IsAttribute && !newValue._name.IsAttribute) { throw new ArgumentException("這個節點只允許文字資料。"); } //防止自行建立的 XData.Name 與 MemberName 不相同。 //因為是否為 Xml 屬性的資訊在 Name 之中。 newValue._name = name; } else { newValue = new XmlObject(name.FullName) { _string_value = value + "" } }; ChildrenDictionary[name] = newValue; } }
internal static XmlObject ParseList(IEnumerable <XElement> xmlList) { XmlObject result = new XmlObject() { UniqueMode = false }; result.SetName(xmlList.First().Name.LocalName); foreach (XElement elm in xmlList) { result.XmlRecordList.Add(XmlObject.Parse(elm)); } return(result); }
internal static XmlObject ParseList(IEnumerable<XElement> xmlList) { XmlObject result = new XmlObject() { UniqueMode = false }; result.SetName(xmlList.First().Name.LocalName); foreach (XElement elm in xmlList) result.XmlRecordList.Add(XmlObject.Parse(elm)); return result; }