Exemplo n.º 1
0
        private static XmlTreeNode _fromXml(XmlNode XmlNode)
        {
            XmlTreeNode TnNode = new XmlTreeNode(XmlNode.Name);

            //先写属性
            foreach (XmlAttribute attrib in XmlNode.Attributes)
            {
                TnNode.SetAttribute(attrib.Name, attrib.Value);
            }
            //再写子结点
            if (XmlNode.ChildNodes.Count == 0)
            {
                String tmpValue = XmlNode.Value;
                if (tmpValue == null)
                {
                    tmpValue = String.Empty;
                }
                TnNode.value = tmpValue;
            }
            else if (XmlNode.ChildNodes.Count == 1 && XmlNode.ChildNodes[0] is XmlText)
            {
                TnNode.value = XmlNode.ChildNodes[0].Value;
            }
            else
            {
                foreach (XmlNode childNode in XmlNode.ChildNodes)
                {
                    if (childNode is XmlElement)
                    {
                        TnNode.AddItem(_fromXml(childNode));
                    }
                }
            }
            return(TnNode);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 添加子结点
        /// </summary>
        /// <param name="key">结点名称</param>
        /// <param name="node">结点</param>
        /// <returns></returns>
        public XmlTreeNode AddItem(String key, XmlTreeNode node)
        {
            XmlTreeNode tn = new XmlTreeNode(key);

            tn.AddItem(node);
            AddItem(tn);
            return(tn);
        }