Saturday, 15 June 2013

c# - How can I read this XML part? -



c# - How can I read this XML part? -

i have link online xml file read in application. part of xml:

<actuelevertrektijden> <vertrekkendetrein> <ritnummer>4085</ritnummer> <vertrektijd>2014-06-13t22:00:00+0200</vertrektijd> <eindbestemming>rotterdam centraal</eindbestemming> <treinsoort>sprinter</treinsoort> <routetekst>a'dam sloterdijk, amsterdam c., duivendrecht</routetekst> <vervoerder>ns</vervoerder> <vertrekspoor wijziging="false">4</vertrekspoor> <opmerkingen> <opmerking> rijdt vandaag niet</opmerking> </opmerkingen> </vertrekkendetrein> </actuelevertrektijden>

i want read "opmerking" listed in "opmerkingen" , standing in "vertrekkendetrein":

<opmerkingen> <opmerking> rijdt vandaag niet</opmerking> </opmerkingen>

the problem is not there, depend of situation.

i can read other parts "ritnummer" , "vervoerder", , utilize next code that:

string urlo = "thewebsite"; string resultje = httpgeto(urlo); xmldocument xmldoc = new xmldocument(); xmldoc.loadxml(resultje); xmlnodelist nodelist = xmldoc.selectnodes("actuelevertrektijden/vertrekkendetrein/*"); foreach (xmlnode nodelist2 in nodelist) {//14 101517 //int = 0;//if (i == 0) { i++; } if (i < 1) //1 { switch (nodelist2.name) { case "vertrektijd": string kuttijd1 = (nodelist2.innertext); var res1 = regex.match(kuttijd1, @"\d{1,2}:\d{1,2}").value; lblv1.text = convert.tostring(res1); break; case "vertrekvertragingtekst": var tobiasisnietvantexel1 = (nodelist2.innertext); if (tobiasisnietvantexel1 == null) {} else{ ververt1.text = tobiasisnietvantexel1; ververt1.visible = true; vertpic1.visible = true; logo1.top -= 9; lblts1.top -= 9; } break; case "eindbestemming": string vertrek1 = (nodelist2.innertext); if (vertrek1 == "uitgeest") { lblvia1.text = "krommenie-ass"; } lblbs1.text = vertrek1; break; case "treinsoort": lblts1.text = (nodelist2.innertext); break; case "routetekst": lblvia1.text = (nodelist2.innertext); break; case "vertrekspoor": lbls1.text = (nodelist2.innertext); i++; break; } } }

i tried lot like:

case "opmerking": var texeliseeneiland1

and

case "opmerkingen/opmerking": var texeliseeneiland1

is there way can create case "opmerking"?

thanks!

you might seek turning xml node list/set queryable info structure, , utilize system.linq see if contains , opmerking. although that's preference because i've been doing lot of database queries.

in situation, switch statement , many cases, might seek following:

in case "opmerkingen" nest case see if has kid node "opmerking", , "opmerking" node. or have case "opmerkingen" phone call function "opmerking" node.

edit example:

foreach (xmlnode nodelist2 in nodelist) {//14 101517 //int = 0;//if (i == 0) { i++; } if (i < 1) //1 { switch (nodelist2.name) { case "vertrektijd": string kuttijd1 = (nodelist2.innertext); var res1 = regex.match(kuttijd1, @"\d{1,2}:\d{1,2}").value; lblv1.text = convert.tostring(res1); break; case "vertrekvertragingtekst": var tobiasisnietvantexel1 = (nodelist2.innertext); if (tobiasisnietvantexel1 == null) {} else{ ververt1.text = tobiasisnietvantexel1; ververt1.visible = true; vertpic1.visible = true; logo1.top -= 9; lblts1.top -= 9; } break; case "eindbestemming": string vertrek1 = (nodelist2.innertext); if (vertrek1 == "uitgeest") { lblvia1.text = "krommenie-ass"; } lblbs1.text = vertrek1; break; case "treinsoort": lblts1.text = (nodelist2.innertext); break; case "routetekst": lblvia1.text = (nodelist2.innertext); break; case "vertrekspoor": lbls1.text = (nodelist2.innertext); i++; break; //here's case might seek adding case "opmerkingen": var somevar = opmerkingenmethod(nodelist2); break; //or else want do, instead of breaking, //i not know want opmerking when // had function output variable. } } }

here's illustration of method might utilize in case of opmerkingen, can opmerking , that. again, don't know want iw

private string opmerkingenmethod(xmlnode node) { //do xmlnode opmerkingen var = node.name //or whatever want opmerkingen node homecoming }

this might more along lines of want, 1 time again haven't tested code, demonstrate code want.

private string opmerkingenmethod(xmlnode node) { //do xmlnode opmerkingen var kid = node.fistchild; if(child.name == "opmerking") { homecoming child.innertext // or whatever want } else { homecoming "" ; } }

you phone call method in case of opmerkingen , check output, if it's want, break switch statement, if it's not want (because there's no opmerking or something) continue next case, or break go next node in nodelist. again, point phone call method when see opmerkingen can node or value that's within opmerkingen

c# xml web

No comments:

Post a Comment