Example #1
0
 public EXAttr(EXElement el, string name)
 {
     if (el != EXDocument._emptyElement)
     {
         this._exElement = el;
         this.Name       = name;
     }
     else
     {
         this._exElement = EXDocument._emptyElement;
         this.Name       = "";
         this.Value      = "";
     }
 }
Example #2
0
 /// <summary>
 /// 文字列からドキュメントを作成する
 /// </summary>
 /// <param name="xml"></param>
 public void LoadXML(string xml)
 {
     using (XmlReader reader = XmlReader.Create(new StringReader(xml)))
     {
         // ルート要素までジャンプ
         while (reader.Read())
         {
             if (reader.NodeType == XmlNodeType.Element)
             {
                 EXElement root = new EXElement(this);
                 this.DocumentElement = root;
                 root.Name            = reader.Name;
                 root.Value           = "";
                 root.Parent          = EXDocument._emptyElement;
                 LoadXML(reader, root);
             }
         }
     }
 }
Example #3
0
        /// <summary>
        /// 補助関数
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="pa"></param>
        protected void LoadXML(XmlReader reader, EXElement pa)
        {
            EXElement el = null;

            while (reader.Read())
            {
                switch (reader.NodeType)
                {
                case XmlNodeType.Element:
                    el      = new EXElement(pa.Document);
                    el.Name = reader.Name;
                    pa.ChildNodes.Add(el);
                    el.Parent = pa;
                    if (reader.HasAttributes)
                    {
                        if (reader.HasAttributes)
                        {
                            for (int i = 0; i < reader.AttributeCount; i++)
                            {
                                reader.MoveToAttribute(i);
                                EXAttr attr = new EXAttr(el, reader.Name);
                                attr.Value = reader.Value;
                                el.Attributes.Add(attr.Name, attr);
                            }
                        }
                        reader.MoveToElement();
                    }
                    LoadXML(reader, el);
                    break;

                case XmlNodeType.EndElement:
                    return;

                case XmlNodeType.Text:
                    pa.Value = reader.Value;
                    break;
                }
            }
        }
Example #4
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public EXDocument()
 {
     _emptyElement    = new EXElement(this);
     _emptyAttr       = new EXAttr(_emptyElement, "");
     _emptyAttr.Value = "";
 }
Example #5
0
        /// <summary>
        /// 要素を作成する
        /// </summary>
        /// <returns></returns>
        public EXElement CreateElement()
        {
            EXElement el = new EXElement(this);

            return(el);
        }