Пример #1
0
        private static Dictionary<FCS.Lite.Base.IAbstractTextNode, List<string>> GetNodesForContexts(FCS.Lite.Base.DocumentText docText, string[] contexts)
        {
            Dictionary<FCS.Lite.Base.IAbstractTextNode, List<string>> nodes = new Dictionary<FCS.Lite.Base.IAbstractTextNode, List<string>>();

            List<FCS.Lite.Base.IAbstractTextType>.Enumerator enumer = docText.TextTypeEnumerator();

            while (enumer.MoveNext())
            {
                FCS.Lite.Base.IAbstractTextType textType = enumer.Current as FCS.Lite.Base.TextType;
                
                if (textType == null)
                    continue;
                
                for (int i = 0; i < contexts.Length; ++i)
                {
                    if (enumer.Current.ToString().IndexOf(contexts[i]) != -1)
                    {
                        // Found a textType that I want to check for content.
                        // Need to add all it's children..                        
                        for (int j = 0; j < enumer.Current.GetChildCount(); ++j)
                        {
                            FCS.Lite.Base.IAbstractTextNode child = textType.GetChild(j);
                            if (!nodes.ContainsKey(child))
                            {
                                List<string> types = new List<string>();
                                types.Add(contexts[i]);
                                nodes.Add(child, types);
                            }
                            else
                            {
                                nodes[child].Add(contexts[i]);
                            }
                        }
                    }
                }
            }
            return nodes;
        }