private void ReadHelpFile()
        {
            if (_directory == null)
            {
                return;
            }
            string projectPath = Path.Combine(_directory, ProjectInfoDirectory);

            _topics.Clear();
            _urlMap.Clear();
            _ctxIdMap.Clear();
            if (Directory.Exists(projectPath))
            {
                string      toc    = Path.Combine(projectPath, TocFile);
                string      topics = Path.Combine(projectPath, TopicsFile);
                XmlDocument doc    = new XmlDocument();
                doc.Load(toc);
                _topics = new HelpTopicList();
                for (int i = 0; i < doc.DocumentElement.ChildNodes.Count; i++)
                {
                    if (doc.DocumentElement.ChildNodes[i] is XmlElement)
                    {
                        XmlElement item      = (XmlElement)doc.DocumentElement.ChildNodes[i];
                        HelpTopic  helpTopic = ParseTopic(item);
                        _topics.Add(helpTopic);
                        ParseToc(helpTopic, item);
                    }
                }

                doc.Load(topics);
                ParseTopics(doc);
            }
        }
        private HelpTopic ParseTopic(XmlElement item)
        {
            string        url   = GetUrl(item);
            string        title = GetTitle(item);
            HelpTopicList list  = null;

            if (item.ChildNodes.Count > 1)
            {
                list = new HelpTopicList();
            }
            HelpTopic helpTopic = new HelpTopic(title, url, list);

            _urlMap[url] = helpTopic;
            return(helpTopic);
        }