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