예제 #1
0
파일: XMLElement.cs 프로젝트: vb0067/LGame
        public List <XMLElement> Find(string n)
        {
            List <XMLElement> v = new List <XMLElement>();

            for (IIterator e = Elements(); e.HasNext();)
            {
                object o = e.Next();
                if ((!(o  is  XMLElement)))
                {
                    continue;
                }
                XMLElement ele = (XMLElement)o;
                if (!ele.Equals(ele.GetName()))
                {
                    IIterator it = ele.Elements(n);
                    for (; it.HasNext();)
                    {
                        XMLElement child = (XMLElement)it.Next();
                        child.parent = ele;
                        CollectionUtils.Add(v, child);
                    }
                    continue;
                }
                else if (ele.Equals(ele.GetName()))
                {
                    CollectionUtils.Add(v, (XMLElement)o);
                    continue;
                }
            }
            return(v);
        }
예제 #2
0
파일: XMLOutput.cs 프로젝트: zhwk022/LGame
 public void Start_ele(XMLElement ele)
 {
     for (IIterator it = ele.Elements(); it.HasNext();)
     {
         XMLElement e = (XMLElement)it.Next();
         Start_ele(e.GetName());
     }
 }
예제 #3
0
        private static NSObject ParseObject(XMLElement n)
        {
			String type = n.GetName();
			if (type.Equals("dict",StringComparison.InvariantCultureIgnoreCase)) {
				NSDictionary dict = new NSDictionary();
				List<XMLElement> children = n.List();
				for (int i = 0; i < children.Count; i += 2) {
                    XMLElement key = (XMLElement)children[i + 0];
					XMLElement val = (XMLElement) children[i + 1];
					dict.Put(key.GetContents(), ParseObject(val));
				}
				return dict;
			} else if (type.Equals("array",StringComparison.InvariantCultureIgnoreCase)) {
				List<XMLElement> children = n.List();
				NSArray array = new NSArray(children.Count);
				for (int i = 0; i < children.Count; i++) {
					array.SetValue(i, ParseObject((XMLElement) children[i]));
				}
				return array;
			} else if (type.Equals("true",StringComparison.InvariantCultureIgnoreCase)
					|| type.Equals("yes",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSNumber(true);
			} else if (type.Equals("false",StringComparison.InvariantCultureIgnoreCase)
					|| type.Equals("no",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSNumber(false);
			} else if (type.Equals("integer",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSNumber(n.GetContents());
			} else if (type.Equals("real",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSNumber(n.GetContents());
			} else if (type.Equals("string",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSString(n.GetContents());
			} else if (type.Equals("data",StringComparison.InvariantCultureIgnoreCase)) {
				return new NSData(n.GetContents());
			} else if (type.Equals("range",StringComparison.InvariantCultureIgnoreCase)) {
				List<XMLElement> children = n.List();
				if (children.Count == 2) {
					XMLElement key = (XMLElement) children[0];
					XMLElement val = (XMLElement) children[1];
					return new NSRange(Int32.Parse(key.GetContents()),
							Int32.Parse(val.GetContents()));
				}
			}
			return null;
		}
예제 #4
0
 public virtual void EndElement(int line, XMLElement e)
 {
     _read.StopElement(e != null ? e.GetName() : _read._classType);
 }