XML转换为动态对象在C#

问题描述:

在我的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

编辑

源代码

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