当我向网络服务发送请求时,我得到以下回复:
<?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>
现在我想阅读此回复并使用数据。我现在可以通过以下方式做到这一点:
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;
但是如果必须为每个节点执行此操作,那么读取xml似乎有很多工作要做。我想知道是否有一种更简单的方法来读取xml并从中提取数据。
有什么想法吗?