示例#1
0
        public virtual void Init(System.Xml.XmlNode node)
        {
            try
            {
                Name = node.Name;
                foreach (System.Xml.XmlAttribute xmlattr in node.Attributes)
                {
                    VXmlAttribute attr = new VXmlAttribute(this);
                    attr.Name  = xmlattr.Name;
                    attr.Value = xmlattr.Value;
                }

                foreach (System.Xml.XmlNode xmlNode in node.ChildNodes)
                {
                    if (xmlNode.NodeType == System.Xml.XmlNodeType.Text)
                    {
                        this.Value = (xmlNode as System.Xml.XmlText).Value;
                    }
                    else
                    {
                        VXmlNode nodeChild = null;
                        switch (xmlNode.NodeType)
                        {
                        case System.Xml.XmlNodeType.Comment:
                            nodeChild       = new VXmlComment(Document);
                            nodeChild.Layer = Layer + 1;
                            nodeChild.Init(xmlNode);
                            break;

                        case System.Xml.XmlNodeType.CDATA:
                            nodeChild       = new VXmlCDataSection(Document);
                            nodeChild.Layer = Layer + 1;
                            nodeChild.Init(xmlNode);
                            break;

                        default:
                            nodeChild       = new VXmlNode(Document);
                            nodeChild.Layer = Layer + 1;
                            nodeChild.Init(xmlNode);
                            break;
                        }

                        //nodeChild.Layer = Layer + 1;
                        nodeChild.Parent = this;
                        _lstChildNode.Add(nodeChild);
                    }
                }
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message + "\n" + node.OuterXml);
            }


            CreateTextLine();
        }
示例#2
0
        public virtual void AddChildNode(System.Xml.XmlNode node)
        {
            try
            {
                VXmlNode childNode = new VXmlNode(Document);

                childNode.Init(node);
                this._lstChildNode.Add(childNode);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message + "\n" + node.OuterXml);
            }
        }
示例#3
0
        public void LoadXml(string xml)
        {
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

            try
            {
                doc.LoadXml(xml);
                XmlHeader = new VXmlHeader(this, doc.FirstChild);

                NodeRoot = new VXmlNode(this);
                NodeRoot.Init(doc.DocumentElement);

                m_sFile = "";

                NCalc = true;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("读取XML字符串失败,请确认xml字符串是否正确。\n" + ex.Message);
            }
        }
示例#4
0
        public void InsertXml(string xml)
        {
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

            try
            {
                doc.LoadXml(xml);

                if (NodeRoot == null)
                {
                    NodeRoot = new VXmlNode(this);

                    NodeRoot.Init(doc.DocumentElement);
                }
                else if (_editor.Caret.Line > 1)
                {
                    Line line = this.GetLineByLineCount(_editor.Caret.Line);
                    if (line.Node != null)
                    {
                        if (line == line.Node.FirstLine)
                        {
                            line.Node.Init(doc.DocumentElement);
                        }
                        else
                        {
                            VXmlNode node = line.Node;
                            node.AddChildNode(doc.DocumentElement);
                        }
                    }
                }

                NCalc = true;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("读取XML字符串失败,请确认xml字符串是否正确。\n" + ex.Message);
            }
        }
示例#5
0
        public void Load(string file)
        {
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

            try
            {
                _bookmarkManager.Clear();

                doc.Load(file);
                XmlHeader = new VXmlHeader(this, doc.FirstChild);

                NodeRoot = new VXmlNode(this);
                NodeRoot.Init(doc.DocumentElement);

                m_sFile = file;

                NCalc = true;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("打开XML文件失败,请确认文件是否正确。\n" + ex.Message);
            }
        }