2012-08-09 111 views
0

在我的web應用程序,我得到的結果作爲XML時,在Web瀏覽器這樣的XML轉換爲動態對象在C#

<Responses> 
<Response0> 
    <Action>sendMessage</Action> 
    <Data> 
     <AcceptReport> 
      <StatusCode>0</StatusCode> 
      <StatusText>Message accepted for delivery</StatusText> 
      <MessageID>89c8011c-e291-44c3-ac72-cd35c76cb29d</MessageID> 
      <Recipient>+85568922903</Recipient> 
     </AcceptReport> 
    </Data> 
</Response0> 
</Responses> 

顯示我想上面的XML文件顯示爲文本象下面這樣:

Message accepted for delivery 
Message ID: IEUHSHIL 
Recipient: +441234567 

如何將XML文件轉換爲上面的文本?

+0

這是一個有點不清楚你的意思 - 你的意思是你必須要在其上寫字符串值的網頁,它的像這樣出來?或者你的意思是你將XML返回給瀏覽器,並將整個東西顯示爲XML(即在IE中你得到可摺疊的XML樹) - 如果後者那麼你可能想看看XSL – 2012-08-09 07:40:54

+0

我的意思是有一個網頁你正在寫的字符串值,它是這樣出來的。所以我該怎麼辦? – 2012-08-09 07:42:46

+0

嗨我更新了我的答案充分soruce ..只是檢查它..不要忘了upvote和標記答案爲接受,如果它適合你 – 2012-08-09 08:14:51

回答

3

編輯

源代碼

XDocument doc = XDocument.Parse("<Responses> <Response0>  <Action>sendMessage</Action>  <Data>   <AcceptReport>    <StatusCode>0</StatusCode>    <StatusText>Message accepted for delivery</StatusText>    <MessageID>89c8011c-e291-44c3-ac72-cd35c76cb29d</MessageID>    <Recipient>+85568922903</Recipient>   </AcceptReport>  </Data> </Response0> </Responses> "); 

var message = from item in doc.Descendants("AcceptReport") 
       select new { 
        StatusText = item.Element("StatusText").Value, 
        MessageID = item.Element("MessageID").Value, 
        Recipient = item.Element("Recipient").Value 
       }; 
foreach (var el in message) 
{ 
    Console.WriteLine(el.MessageID + " " +el.Recipient + " " + el.StatusText); 
} 

注:使用XDocument.Parse如果你逝去的字符串,而不是XML文件。


簡單的做法是利用Linq To XML

檢查那邊:Reading XML documents using LINQ to XML

不知道,但像這樣

var message= 
       from item in XElement.Load("message.xml").Descendants("Data") 
       select new 
       { 
         StatusText= item.Element("StatusText").Value, 
         MessageID= item.Element("MessageID").Value, 
         Recipient= item.Element("Recipient").Value 
        }; 
+0

你能舉個例子嗎? – 2012-08-09 07:39:11

+0

@ToeurTenh - 我粘貼鏈接那裏..你也可以谷歌喜歡LINQ到XML閱讀會給你沒有文章做到這一點.. – 2012-08-09 07:40:47

+0

謝謝Nikhil和拉娜:好吧,我會讀 – 2012-08-09 07:44:31