Пример #1
0
        /// <summary>
        /// 获得所有的文档节点
        /// </summary>
        /// <returns>文档节点列表</returns>
        public CHMNodeList GetAllNodes()
        {
            CHMNodeList list = new CHMNodeList();

            InnerGetNodes(list, nodeList);
            return(list);
        }
Пример #2
0
        /// <summary>
        /// 递归实现将nodes写入hhc文件中
        /// </summary>
        /// <param name="nodeList"></param>
        private void NodesHhc(CHMNodeList nodeList)
        {
            if (nodeList.Count == 0 || nodeList == null)
            {
                return;
            }
            streamWriter.WriteLine("        <UL>");

            foreach (CHMNode node in nodeList)
            {
                if (node.Nodes != null && node.Nodes.Count > 0)//如果是父节点
                {
                    streamWriter.WriteLine("    <LI><OBJECT type=\"text/sitemap\">");
                    streamWriter.WriteLine("            <param name=\"Name\" value=\"" + node.Name + "\">");
                    streamWriter.WriteLine("        </OBJECT>");
                    NodesHhc(node.Nodes);
                }
                else//如果是子节点
                {
                    streamWriter.WriteLine("         <LI><OBJECT type=\"text/sitemap\">");
                    streamWriter.WriteLine("                <param name=\"Name\" value=\"" + node.Name + "\">");
                    streamWriter.WriteLine("                <param name=\"Local\" value=\"" + node.Local + "\">");
                    streamWriter.WriteLine("             </OBJECT>");
                }
            }

            streamWriter.WriteLine("        </UL>");
        }
Пример #3
0
 private void InnerGetNodes(CHMNodeList list, CHMNodeList list2)
 {
     foreach (CHMNode node in list2)
     {
         list.Add(node);
         InnerGetNodes(list, node.Nodes);//以递归的方式获得所有节点
     }
 }
Пример #4
0
 //递归写hhp中的Files
 private void NodesHhp(CHMNodeList nodeList)
 {
     if (nodeList == null || nodeList.Count == 0)
     {
         return;
     }
     foreach (CHMNode node in nodeList)
     {
         if (node.Nodes == null || node.Nodes.Count == 0)
         {
             streamWriter.WriteLine(node.Local);
         }
         else
         {
             NodesHhp(node.Nodes);
         }
     }
 }
Пример #5
0
 //nodes保存为xml
 private void NodesToXML(CHMNodeList nodes, System.Xml.XmlElement RootElement)
 {
     System.Xml.XmlDocument doc = RootElement.OwnerDocument;
     foreach (CHMNode node in nodes)
     {
         System.Xml.XmlElement NodeElement = doc.CreateElement("Node");
         NodeElement.SetAttribute("Name", node.Name);
         NodeElement.SetAttribute("Local", node.Local);
         NodeElement.SetAttribute("ImageNumber", node.ImageNo);
         NodeElement.SetAttribute("KeyWords", node.KeyWords);
         RootElement.AppendChild(NodeElement);
         if (node.Nodes != null && node.Nodes.Count > 0)
         {
             System.Xml.XmlElement ItemsElement = doc.CreateElement("Items");
             NodeElement.AppendChild(ItemsElement);
             NodesToXML(node.Nodes, ItemsElement);
         }
     }
 }
Пример #6
0
        private string GetFirstPage(CHMNodeList nodeList)
        {
            string str = "";

            if (nodeList == null || nodeList.Count == 0)
            {
                return(str);
            }
            foreach (CHMNode node in nodeList)
            {
                if (node.Nodes == null || node.Nodes.Count == 0)
                {
                    return(node.Local);
                }
                else
                {
                    str = GetFirstPage(node.Nodes);
                }
            }
            return(str);
        }
Пример #7
0
 //xml转为为nodes
 private void NodesFromXML(CHMNodeList nodes, System.Xml.XmlElement RootElement)
 {
     foreach (System.Xml.XmlNode node in RootElement.ChildNodes)
     {
         if (node.Name == "Node")
         {
             System.Xml.XmlElement element = (System.Xml.XmlElement)node;
             CHMNode NewNode = new CHMNode();
             NewNode.Name     = element.GetAttribute("Name");
             NewNode.Local    = element.GetAttribute("Local");
             NewNode.ImageNo  = element.GetAttribute("ImageNumber");
             NewNode.KeyWords = element.GetAttribute("KeyWords");
             nodes.Add(NewNode);
             foreach (System.Xml.XmlNode node2 in element.ChildNodes)
             {
                 if (node2.Name == "Items")
                 {
                     NodesFromXML(NewNode.Nodes, (System.Xml.XmlElement)node2);
                 }
             }
         }
     }
 }
Пример #8
0
 /// <summary>
 /// 添加若干个节点
 /// </summary>
 /// <param name="nodes"></param>
 public void AddRange(CHMNodeList nodes)
 {
     this.InnerList.AddRange(nodes);
 }