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文件转换为上面的文本?
编辑
源代码
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
};
你能举个例子吗? – 2012-08-09 07:39:11
@ToeurTenh - 我粘贴链接那里..你也可以谷歌喜欢LINQ到XML阅读会给你没有文章做到这一点.. – 2012-08-09 07:40:47
谢谢Nikhil和拉娜:好吧,我会读 – 2012-08-09 07:44:31
这是一个有点不清楚你的意思 - 你的意思是你必须要在其上写字符串值的网页,它的像这样出来?或者你的意思是你将XML返回给浏览器,并将整个东西显示为XML(即在IE中你得到可折叠的XML树) - 如果后者那么你可能想看看XSL – 2012-08-09 07:40:54
我的意思是有一个网页你正在写的字符串值,它是这样出来的。所以我该怎么办? – 2012-08-09 07:42:46
嗨我更新了我的答案充分soruce ..只是检查它..不要忘了upvote和标记答案为接受,如果它适合你 – 2012-08-09 08:14:51