2012-07-02 3 views
1

그래서 ASP 페이지에 데이터를 게시하는 SMS 서비스가 있습니다.C에서 XML 양식 데이터를 구문 분석하는 방법

데이터가 HTML 인코딩 된 XML로 제공됩니다. 내가 직접 InputStream로부터 읽을 때 다음과 같습니다

Content-Disposition: form-data; name="xml" 

<POSTBACK> 
    <NOTIFICATION id="4254" created="2012-07-02 13:35:46.629214-04"> 
    <ORIGIN>SMS_MO</ORIGIN> 
    <CODE>N211</CODE> 
    <BODY><FROM>+15035555555</FROM><TO>60856</TO><TEXT>cats are cats</TEXT><RECEIVED>2012-07-02 13:35:46.038477-04</RECEIVED></BODY> 
    </NOTIFICATION> 
</POSTBACK> 
------------------------------fde0d0d3bf3c-- 

내가 직접 가서 문자 코드를 교체 한 후 나는 시간의를 위해 뭘 오전되는 해당 xmldoc ...로 읽을 수있어 사케.

XML 형식 데이터를 처리하기위한 네이티브 데이터 형식 또는 기본 제공 클래스가 있는지 궁금합니다.

는 시도 :

string cleanString = HttpUtility.HtmlDecode(strRawtext); 

하지만 어떤 이유로 동일 보인다.

답변

1

HttpUtility.HtmlDecode Method이 문제를 해결할 수 있어야합니다.

나를 위해 잘 작동 :

private static void HtmlDecodeTest() 
{ 
    string html = @" 
<POSTBACK> 
    <NOTIFICATION id=""4254"" created=""2012-07-02 13:35:46.629214-04""> 
    <ORIGIN>SMS_MO</ORIGIN> 
    <CODE>N211</CODE> 
    <BODY><FROM>+15035555555</FROM><TO>60856</TO><TEXT>cats are cats</TEXT><RECEIVED>2012-07-02 13:35:46.038477-04</RECEIVED></BODY> 
    </NOTIFICATION> 
</POSTBACK>"; 

    string x = HttpUtility.HtmlDecode(html); 
    Console.WriteLine(x); 
} 

결과 :

 <POSTBACK> 
      <NOTIFICATION id="4254" created="2012-07-02 13:35:46.629214-04"> 
      <ORIGIN>SMS_MO</ORIGIN> 
      <CODE>N211</CODE> 
      <BODY><FROM>+15035555555</FROM><TO>60856</TO><TEXT>cats are cats</TE 
XT><RECEIVED>2012-07-02 13:35:46.038477-04</RECEIVED></BODY> 
      </NOTIFICATION> 
     </POSTBACK> 
+0

이 일을 문자열 = HttpUtility.HtmlDecode를 디코딩 할 때 (strRawtext를) 결과를 생성하지 않는 것을; 흠. – FlavorScape

+0

@FlavorScape - 내 상자에서 작동합니다. –

+0

오류 예, 결과를 추적하는 "로그"는 XML 자체이므로 테스트 용 InnerText로 삽입하면 모든 것을 HTML 인코딩으로 다시 변환합니다. 당연하지. 그래서 지금은 실제 노드를 추가하고 그것은 좋은거야. – FlavorScape

관련 문제