2012-07-02 16 views
1

所以,我有一個SMS服務發佈數據到ASP頁面。如何在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