/// <summary> /// 지정된 Path에서 값을 가져옵니다. /// 지정한 Path가 XmlAttribute가 아닌 경우, null을 반환할 수 있습니다. /// </summary> /// <param name="path">구분자는 \ 혹은 / 를 사용할 수 있습니다.</param> /// <returns>지정된 Path에 정의된 값</returns> public String GetValue(String path) { String[] names = path.Split(new char[] { '\\', '/' }); CustomData data = this; foreach (String name in names) { data = data.GetChild(name); if (data == null) { throw new AegisException(AegisResult.InvalidArgument, "Invalid node name({0}).", name); } } return(data.Value); }
/// <summary> /// 지정된 Path에서 값을 가져옵니다. /// 지정한 Path가 XmlAttribute가 아닌 경우, null을 반환할 수 있습니다. /// </summary> /// <param name="path">구분자는 \ 혹은 / 를 사용할 수 있습니다.</param> /// <param name="defaultValue">path에서 값을 가져올 수 없으면 default값을 반환합니다.</param> /// <returns>path에 값이 정의되어있으면 해당 값을 반환하고 path가 잘못되어있으면 defaultValue를 반환합니다.</returns> public String GetValue(String path, String defaultValue) { String[] names = path.Split(new char[] { '\\', '/' }); CustomData data = this; foreach (String name in names) { data = data.GetChild(name); if (data == null) { return(defaultValue); } } return(data.Value); }
private static void LoadCustomData(XmlNode node, CustomData customData) { foreach (XmlNode childNode in node.ChildNodes) { if (customData.GetChild(childNode.Name) != null) throw new AegisException(AegisResult.InvalidArgument, "Duplicate key({0}) in CustomData."); CustomData data = new CustomData(childNode.Name); customData.Childs.Add(data); foreach (XmlAttribute attr in childNode.Attributes) { CustomData childData = new CustomData(attr.Name, attr.Value); data.Childs.Add(childData); } LoadCustomData(childNode, data); } }