kan man göra en klass för att få datan ur:
http://wow.allakhazam.com/dev/wow/item-xml.pl?witem=18282 ?
XmlSerializer och DeSerializer?
2 svar · 402 visningar · startad av voigtann1
Väldigt lätt med .Net 2.0.
Skapa en klass. För varje xml-element i xml-filen så skapar du en public variabel med exakt samma namn som xml-elementet. Stora och små bokstäver måste stämma med.
i C#:
[System.Xml.Serialization.XmlRoot("wowitem")]
public class Wowitem
{
public string id = "" ;
public string arcane_resist = "" ;
public string armor = "" ;
public string binds = "" ;
public string block = "" ;
public string buyprice = "" ;
public string classes = "" ;
public string common_mob = "" ;
public string common_percent = "" ;
public string depreciated = "" ;
public string description = "" ;
public string display_html = "" ;
public string displayinfo = "" ;
public string dmg_high = "" ;
public string dmg_high2 = "" ;
public string dmg_high3 = "" ;
public string dmg_low = "" ;
public string dmg_low2 = "" ;
public string dmg_low3 = "" ;
public string dmg_resist = "" ;
public string dmg_resist2 = "" ;
public string dmg_resist3 = "" ;
public string entered = "" ;
public string fire_resist = "" ;
public string first = "" ;
public string frost_resist = "" ;
public string gemid = "" ;
public string holy_resist = "" ;
public string icon = "" ;
public string image = "" ;
public string iscrafted = "" ;
public string isqfodder = "" ;
public string isquested = "" ;
public string israid = "" ;
public string isstatic = "" ;
public string isvendor = "" ;
public string isworld = "" ;
public string itemclass = "" ;
public string itemid = "" ;
public string itemsubclass = "" ;
public string level = "" ;
public string minlevel = "" ;
public string name1 = "" ;
public string name2 = "" ;
public string name3 = "" ;
public string name4 = "" ;
public string nature_resist = "" ;
public string newest = "" ;
public string notes = "" ;
public string quality = "" ;
public string quest_id_a = "" ;
public string quest_id_b = "" ;
public string races = "" ;
public string randprop = "" ;
public string recskill_amount = "" ;
public string recskill_skill = "" ;
public string req_spell = "" ;
public string reqfaction = "" ;
public string reqfactionlvl = "" ;
public string reqpvprank = "" ;
public string sellprice = "" ;
public string setid = "" ;
public string shadow_resist = "" ;
public string slot = "" ;
public string slots = "" ;
public string socket_1 = "" ;
public string socket_2 = "" ;
public string socket_3 = "" ;
public string socketbonus = "" ;
public string source = "" ;
public string speed = "" ;
public string spellact1 = "" ;
public string spellact2 = "" ;
public string spellact3 = "" ;
public string spellcooldown1 = "" ;
public string spellcooldown2 = "" ;
public string spellcooldown3 = "" ;
public string spellcoolgroup1 = "" ;
public string spellcoolgroup2 = "" ;
public string spellcoolgroup3 = "" ;
public string spellcoolgrouptime1 = "" ;
public string spellcoolgrouptime2 = "" ;
public string spellcoolgrouptime3 = "" ;
public string spelleffect1 = "" ;
public string spelleffect2 = "" ;
public string spelleffect3 = "" ;
public string stacksize = "" ;
public string startquest = "";
public string stat1_stat = "" ;
public string stat1_value = "" ;
public string stat2_stat = "" ;
public string stat2_value = "" ;
public string stat3_stat = "" ;
public string stat3_value = "" ;
public string stat4_stat = "" ;
public string stat4_value = "" ;
public string stat5_stat = "" ;
public string stat5_value = "" ;
public string total_drops = "" ;
public string total_percent = "" ;
public string unique = "" ;
public string unknown_101 = "" ;
public string unknown_102 = "" ;
public string unknown_103 = "" ;
public string unknown_109 = "" ;
public string unknown_110 = "" ;
public string unknown_111 = "" ;
public string unknown_112 = "" ;
public string unknown_113 = "" ;
public string unknown_114 = "" ;
public string unknown_115 = "" ;
public string unknown_117 = "" ;
public string unknown_119 = "" ;
public string unknown_121 = "" ;
public string unknown_123 = "" ;
public string unknown_124 = "" ;
public string unknown_125 = "" ;
public string unknown_31 = "" ;
public string unknown_32 = "" ;
public string unknown_33 = "" ;
public string unknown_34 = "" ;
public string unknown_35 = "" ;
public string unknown_36 = "" ;
public string unknown_37 = "" ;
public string unknown_38 = "" ;
public string unknown_39 = "" ;
public string unknown_40 = "" ;
public string unknown_50 = "" ;
public string unknown_51 = "" ;
public string unknown_52 = "" ;
public string unknown_53 = "" ;
public string unknown_54 = "" ;
public string unknown_55 = "" ;
public string unknown_63 = "" ;
public string unknown_67 = "" ;
public string unknown_73 = "" ;
public string unknown_79 = "" ;
public string unknown_8 = "" ;
public string unknown_83 = "" ;
public string unknown_84 = "" ;
public string unknown_85 = "" ;
public string unknown_86 = "" ;
public string unknown_87 = "" ;
public string unknown_88 = "" ;
public string unknown_89 = "" ;
public string unknown_90 = "" ;
public string unknown_91 = "" ;
public string unknown_92 = "" ;
public string unknown_93 = "" ;
public string unknown_94 = "" ;
public string unknown_97 = "" ;
public string unknown_98 = "" ;
public string unknown_99 = "" ;
public string updated = "" ;
public string version = "" ;
public Wowitem()
{
}
}
För att ladda:
Wowitem s = new Wowitem();
XmlSerializer serializer = new XmlSerializer(typeof(Wowitem));
// Öppna en ström att deserializera ifrån
StreamReader objstreamReader = new StreamReader("c:\\test.xml");
// Deserializera strömmen till ett object, som vi castar till Wowitem.
s = (Wowitem)serializer.Deserialize(objstreamReader);
objstreamReader.Close();
// Manipulera objektet. Sen spara igen, till en annan fil för att kunna gämföra skillnaderna
s.description = "Good stuff";
StreamWriter writer = new StreamWriter("c:\\text2.xml");
serializer.Serialize(writer, s);
writer.Close();
Tackar :D ska kolla igenom detta sen :D