나는 잠시 동안 이것을 검색해 왔으며 해결책을 찾을 수 없습니다. 나는 xmldocument로로드하고 요청의 특정 속성 (상태)을 얻으려고하는 HttpWebRequest에서 반환되는 XML을 가지고있다. 반환되는 xml은 아래와 같습니다.C#에서 xml 특성 읽기
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<soapenv:Body>
<processRequestResponse>
<parameters>
<ns1:searchResponse status="success" xmlns:ns1="urn:oasis:names:tc:SPML:2:0:search">
<ns1:pso>
<ns2:psoID ID="Users:####" xmlns:ns2="urn:oasis:names:tc:SPML:2:0"/>
<ns3:data xmlns:ns3="urn:oasis:names:tc:SPML:2:0">
<ns4:attr name="Users.User ID" xmlns:ns4="urn:oasis:names:tc:DSML:2:0:core">
<ns4:value></ns4:value>
</ns4:attr>
</ns3:data>
</ns1:pso>
</ns1:searchResponse>
</parameters>
</processRequestResponse>
</soapenv:Body>
</soapenv:Envelope>
이 데이터를 가져 오기 위해 사용하고있는 코드는 다음과 같습니다.
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string returnResponse = reader.ReadToEnd();
XmlDocument doc = new XmlDocument();
doc.LoadXml(returnResponse);
XmlNode root = doc.DocumentElement;
XmlNode searchResponse = root.SelectSingleNode("Envelope/Body/processRequestResponse/parameters/searchResponse");
XmlAttribute status = (XmlAttribute)searchResponse.Attributes.GetNamedItem("status");
if (status != null)
{
string statusReturn = status.Value;
return statusReturn;
}
else
{
return "value is null";
}
상태 값을 줄 수있는 도움이 필요하시면 도움이됩니다. xmlattrbute 상태 줄에서 개체 참조 오류가 계속 발생합니다.
들여하세요 XML 샘플은 읽을 수 없기 때문에 추출하려고하는 것을 말하기 어렵습니다. – millimoose