Beispiel #1
0
        /// <summary>
        /// File 정보를 담고 있는 XmlElement를 filename으로 저장한다.
        /// </summary>
        /// <param name="fileNode">파일 Stream 을 가지고 있는 Node</param>
        /// <param name="filename">저장할 파일 이름</param>
        /// <param name="overwrite">겹쳐쓰기 여부</param>
        /// <returns>저장된 파일 이름</returns>
        public string SaveFileElement(XmlElement fileNode, string filename, bool overwrite) {
            fileNode.ShouldNotBeNull("fileNode");

            if(IsDebugEnabled)
                log.Debug("파일정보를 담은 요소를 파일로 저장합니다... fileNode=[{0}], filename=[{1}], overwrite=[{2}]", fileNode.Name, filename,
                          overwrite);

            var buff = Convert.FromBase64String(fileNode.InnerText);

            if(!overwrite && File.Exists(filename))
                filename = filename.FindNewFileName();

            Path.GetDirectoryName(filename).CreateDirectory();

            using(var bs = FileTool.GetBufferedFileStream(filename, FileOpenMode.ReadWrite))
                bs.Write(buff, 0, buff.Length);

            if(IsDebugEnabled)
                log.Debug("파일정보를 담은 요소를 파일로 저장했습니다!!! filename=[{0}]", filename);

            return filename;
        }
Beispiel #2
0
        /// <summary>
        /// 새로운 XmlElement를 refNode 앞에 추가한다.
        /// </summary>
        public XmlElement InsertElementBefore(XmlElement refNode, string xml) {
            refNode.ShouldNotBeNull("refNode");

            XmlElement result = null;

            var document = xml.CreateXmlDocument();

            if(document.IsValidDocument())
                result = InsertElementBefore(refNode, document.Root);

            return result;
        }
Beispiel #3
0
        /// <summary>
        /// 새로운 XmlElement를 refNode 앞에 추가한다.
        /// </summary>
        /// <returns>실패시에는 null을 반환한다.</returns>
        public XmlElement InsertElementBefore(XmlElement refNode, string name, string text) {
            refNode.ShouldNotBeNull("refNode");
            name.ShouldNotBeWhiteSpace("name");

            if(IsDebugEnabled)
                log.Debug("Insert new XmlElement before reference node. refNode=[{0}], name=[{1}], text=[{2}]",
                          refNode.Name, name, text);


            return InsertElementBefore(refNode,
                                       CreateElement(name, text));
        }
Beispiel #4
0
        /// <summary>
        /// 새로운 XmlElement를 refNode 앞에 추가한다.
        /// </summary>
        public XmlElement InsertElementBefore(XmlElement refNode, XmlElement newNode) {
            refNode.ShouldNotBeNull("refNode");

            if(refNode.ParentNode != null && newNode != null)
                return refNode.ParentNode.InsertBefore(newNode, refNode) as XmlElement;

            throw new XmlException("Invalid reference Node, Invalid Inserting Node");
        }
Beispiel #5
0
        /// <summary>
        /// 부모 노드에 원본 노드의 복사본을 추가한다.
        /// </summary>
        /// <param name="parentNode">부모 노드</param>
        /// <param name="srcNode">복사할 대상 요소</param>
        /// <returns>새로 복사해서 부모노드에 추가한 요소(<see cref="XmlElement"/>)</returns>
        public XmlElement AddElement(XmlNode parentNode, XmlElement srcNode) {
            parentNode.ShouldNotBeNull("parentNode");
            srcNode.ShouldNotBeNull("srcNode");

            if(IsDebugEnabled)
                log.Debug("XmlElement를 추가합니다... parentNode=[{0}], srcNode=[{1}]", parentNode.Name, srcNode.Name);

            var result = srcNode.CloneNode(true) as XmlElement;

            if(result != null) {
                parentNode.AppendChild(result);

                if(IsDebugEnabled)
                    log.Debug("XmlElement를 추가했습니다!!! 추가된 XmlElement=[{0}]", result);
            }

            return result;
        }