【发布时间】:2020-10-08 15:10:29
【问题描述】:
我有一个xml请求体如下:
<s:Envelope xmlns:s="url1">
<s:Body>
<GetCustomerFunctions xmlns="url2">
<CustomerFunctionRequest xmlns:a="url3" xmlns:i="url4">
<a:AccessToken i:nil="true"/>
<a:CarrierID i:nil="true"/>
<a:Channel i:nil="true"/>
<a:ClaimRefNumber i:nil="true"/>
<a:CustomerIdentifier>1234567899</a:CustomerIdentifier>
<a:IdentifierType>MOBILE_NUMBER</a:IdentifierType>
</CustomerFunctionRequest>
</GetCustomerFunctions>
</s:Body>
</s:Envelope>
我想用不同的手机号码更改 customeridentifier 号码。我很困惑,因为有这么多的命名空间。我尝试了以下代码,但我知道我遇到了一个问题,不理解命名空间是如何发挥作用的。
XDocument doc = XDocument.Load("RequestBody.xml");
XNamespace s = "url1";
XNamespace a = "url3";
XNamespace ns = "url2";
var customerDetails = doc.Element(s + "Envelope").Element(s + "Body").Element(ns + "GetCustomerFunctions").Elements(a + "CustomerFunctionRequest").Single();
customerDetails.Element("CustomerIdentifier").Value = customerIdentifier;
customerDetails.Element("IdentifierType").Value = identifierType;
doc.Save("RequestBody.xml");
【问题讨论】: