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); }
/// <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); }