Пример #1
0
        public void Add(XmlNodeType Type)
        {
            NodeCount node      = null;
            Boolean   foundNode = false;

            for (Int32 i = 0; i < nodes.Count; i++)
            {
                node = (NodeCount)nodes[i];
                if (node.Type == Type)
                {
                    index     = i;
                    foundNode = true;
                    break;
                }
            }
            if (!foundNode)
            {
                node = new NodeCount(Type);
                nodes.Add(node);
                index = nodes.Count - 1;
            }
        }
Пример #2
0
 public void Add(XmlNodeType Type)
 {
     NodeCount node = null;
     Boolean foundNode = false;
     for (Int32 i = 0; i < nodes.Count; i++) {
         node = (NodeCount)nodes[i];
         if (node.Type == Type) {
             index = i;
             foundNode = true;
             break;
         }
     }
     if (!foundNode) {
         node = new NodeCount(Type);
         nodes.Add(node);
         index = nodes.Count - 1;
     }
 }
Пример #3
0
        public static iPhoneApps ReadXmlStream(Stream inStream)
        {
            iPhoneApps    appList    = new iPhoneApps();
            NodeCounts    nodes      = new NodeCounts();
            XmlTextReader textReader = null;

            textReader = new XmlTextReader(inStream);
            textReader.Normalization = true;
            textReader.MoveToContent();
            Boolean inDict = false;

            while (textReader.Read())
            {
                XmlNodeType nType = textReader.NodeType;
                String      type  = nType.ToString();
                String      name  = textReader.Name;
                String      value = textReader.Value.ToString();
                nodes.Inc(nType);
                switch (nType)
                {
                case XmlNodeType.Element:
                    //Console.WriteLine(nType.ToString() + ": " + textReader.Name.ToString());
                    switch (name)
                    {
                    case "dict":
                        if (!inDict)
                        {
                            appList.Add();
                            inDict = true;
                        }
                        break;

                    case "key":
                        appList.Last = PListNodeType.PLKey;
                        break;

                    case "string":
                        appList.Last = PListNodeType.PLString;
                        break;
                    }
                    break;

                case XmlNodeType.Text:
                    //Console.WriteLine(nType.ToString() + ": " + textReader.Value.ToString());
                    switch (appList.Last)
                    {
                    case PListNodeType.PLKey:
                        appList.Key = value;
                        break;

                    case PListNodeType.PLString:
                        appList.Value = value;
                        appList.ApplyKey();
                        break;
                    }
                    break;

                case XmlNodeType.EndElement:
                    switch (name)
                    {
                    case "dict":
                        inDict = false;
                        break;

                    case "key":
                        //appList.ApplyKey();
                        break;
                    }
                    break;

                case XmlNodeType.Whitespace:
                    break;

                default:
                    //Console.WriteLine(nType.ToString() + ": " + textReader.Name.ToString());
                    break;
                }
            }
            for (Int32 i = 0; i < nodes.Count; i++)
            {
                NodeCount node = nodes.Nodes[i];
                Console.WriteLine(node.ToString() + ": " + node.Count.ToString());
            }
            return(appList);
        }