Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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);
            }
        }