0
웹 응답을 XML로 변환하려고합니다. 그러나 XML 문자열이 유효성을 검사하더라도 응답 문자열을 XmlDocument
으로 변환하려고하면 "잘못된 문자 오류"가 표시됩니다. 또한 here에 수락 된 답변을 적용합니다. 코드는 다음과 같습니다 : 두 경우 모두 문자열을 XML로 변환 할 때 .net이 유효하지 않습니다.
public XmlDocument RequestAndResponseHelper(string requestStr, string directory)
{
var request = (HttpWebRequest)WebRequest.Create(directory);
var data = Encoding.ASCII.GetBytes(requestStr);
request.Method = "POST";
request.ContentType = "text/xml";
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
//Accepted answer applied
StringBuilder newString = new StringBuilder();
char ch;
for (int i = 0; i < responseString.Length; i++)
{
ch = responseString[i];
// remove any characters outside the valid UTF-8 range as well as all control characters
// except tabs and new lines
//if ((ch < 0x00FD && ch > 0x001F) || ch == '\t' || ch == '\n' || ch == '\r')
//if using .NET version prior to 4, use above logic
if (XmlConvert.IsXmlChar(ch)) //this method is new in .NET 4
{
newString.Append(ch);
}
}
String newStr = newString.ToString();
XmlDocument rs = new XmlDocument();
rs.Load(newStr);
return rs;
}
은 (연결 answe의 코드를 적용하거나 적용하지 않음), XML을 문자열이 유효하고 동일합니다.
다른 해결책을 제안 할 수 있습니까?
응답에 대한과 (추천 주셔서 너무 감사합니다 –