c# - Reading xml web response -
when send request webservice following response:
<?xml version="1.0" encoding="utf-8"?>n<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soap-env:header xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"/> <soap-env:body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"> <web:xxxresponse xmlns:web="http://xxxxx"> <repliek> <antwoorden> <antwoord> <referte>xxx</referte> <inhoud> <persoon> <insz>xxx</insz> <naam> <achternamen> <achternaam>xx</achternaam> </achternamen> <voornamen> <voornaam>x x</voornaam> </voornamen> </naam> <geslacht> <code beschrijving="mannelijk">1</code> </geslacht> <beheerder datumbegin="2014-03-11"> <plaats> <gemeente> <niscode>x</niscode> <naam>x</naam> </gemeente> <land> <niscode>x</niscode> <isocode>x</isocode> <naam>x</naam> </land> </plaats> <taalregime> <code beschrijving="taal">x</code> </taalregime> </beheerder> <geboorte datumbegin="yyyy-mm-dd"> <datum>yyyy-mm-dd</datum> <plaats> <gemeente> <niscode>xx</niscode> <naam>xx</naam> </gemeente> <land> <niscode>xx</niscode> <isocode>xx</isocode> <naam>xx</naam> </land> </plaats> </geboorte> <burgerlijkestaten> <burgerlijkestaat datumbegin="yyyy-mm-dd"> <code beschrijving="gehuwd">x</code> <partner> <insz>xx</insz> <naam> <achternamen> <achternaam>x</achternaam> </achternamen> <voornamen> <voornaam>x</voornaam> </voornamen> </naam> </partner> <plaats> <gemeente> <niscode>x</niscode> <naam>x</naam> </gemeente> <land> <niscode>x</niscode> <isocode>x</isocode> <naam>xx</naam> </land> </plaats> </burgerlijkestaat> </burgerlijkestaten> <adressen> <hoofdverblijfplaats datumbegin="yyyy-mm-dd"> <straat> <code>x</code> <naam>xxx</naam> </straat> <huisnummer>x</huisnummer> <gemeente> <niscode>x</niscode> <postcode>x</postcode> <naam>x</naam> </gemeente> <land> <niscode>x</niscode> <isocode>x</isocode> <naam>x</naam> </land> </hoofdverblijfplaats> </adressen> </persoon> </inhoud> </antwoord> </antwoorden> </repliek> </web:xxxresponse> </soap-env:body> </soapenv:envelope>
now read response , use data. can doing following:
var response = wr.getresponse(); streamreader reader = new streamreader(response.getresponsestream()); string responsefromserver = reader.readtoend(); xmldocument xmlresponse = new xmldocument(); xmlresponse.loadxml(responsefromserver); xmlnodelist persoon = xmlresponse.getelementsbytagname("persoon"); string naam = ""; foreach (xmlnode per in persoon) { xmlnodelist voornamennodes = per.selectnodes("naam/voornamen"); foreach (xmlnode node in voornamennodes) { xmlnode voornaamnode = node.selectsinglenode("voornaam"); if (voornaamnode != null) { naam = voornaamnode.innertext; } } xmlnode naamnodes = per.selectsinglenode("naam"); if (naamnodes!= null) { xmlnodelist achternamennodes = per.selectnodes("naam/achternamen"); foreach (xmlnode node in achternamennodes) { xmlnode achternaamnode = node.selectsinglenode("achternaam"); if (achternaamnode != null) { naam += " " + achternaamnode.innertext; } } } } naamlabel.text = naam;
but if have every single node, seems alot of work read xml. i'm wondering if there simplier way read xml , extract data it.
any ideas?