示例#1
1
 public Cat fromNode(XmlNode node)
 {
     Cat obj = null;
     if (node.Name == "bobcat")
     {
         obj = new Bobcat();
         ((Bobcat)obj).hear_count = Convert.ToInt64(node.Attributes[0].Value);
         ((Bobcat)obj).cat_type = node.Attributes[1].Value;
         obj.age = Convert.ToInt32(node.Attributes[3].Value);
         obj.name = node.Attributes[2].Value;
         obj.weight = Convert.ToSingle(node.Attributes[4].Value);
     }
     if (node.Name == "tiger")
     {
         obj = new Tiger();
         ((Tiger)obj).location = node.Attributes[0].Value;
         ((Tiger)obj).color = node.Attributes[1].Value;
         ((Tiger)obj).height = Convert.ToSingle(node.Attributes[2].Value);
         ((Tiger)obj).is_hungry = Convert.ToBoolean(node.Attributes[3].Value);
         obj.age = Convert.ToInt32(node.Attributes[5].Value);
         obj.name = node.Attributes[4].Value;
         obj.weight = Convert.ToSingle(node.Attributes[6].Value);
     }
     return obj;
 }
示例#2
1
文件: DS_xml_sax.cs 项目: smitbmx/DS
 public List<Cat> Load()
 {
     List<Cat> lst = new List<Cat>();
     FileStream fs = new FileStream(path_to_file, FileMode.OpenOrCreate);
     StreamReader sr = new StreamReader(fs, Encoding.UTF8);
     SAX_parser parser = new SAX_parser(sr);
     Cat obj = null;
     parser.StartTag += (tag_name) =>
     {
         if (tag_name == "bobcat") { obj = new Bobcat(); }
         if (tag_name == "tiger") { obj = new Tiger(); }
     };
     parser.Characters += (name,value) =>
     {
         switch (name)
         {
             case "name": { obj.name = value; break; }
             case "age": { obj.age = Convert.ToInt32(value);  break; }
             case "weight": { obj.weight = Convert.ToSingle(value); break; }
             case "hear_count": { ((Bobcat)(obj)).hear_count = Convert.ToInt64(value); break; }
             case "cat_type": { ((Bobcat)(obj)).cat_type = value; break; }
             case "location": { ((Tiger)(obj)).location = value; break; }
             case "color": { ((Tiger)(obj)).color = value; break; }
             case "height": { ((Tiger)(obj)).height = Convert.ToSingle(value); break; }
             case "is_hungry": { ((Tiger)(obj)).is_hungry = Convert.ToBoolean(value); break; }
         }
     };
     parser.EndTag += (tag_name) =>
         {
             if (tag_name == "bobcat" || tag_name == "tiger")
             {
                 lst.Add(obj);
             }
         };
     parser.start();
     sr.Close();
     fs.Close();
     return lst;
 }