XML转换为动态对象在C#
问题描述:
在我的web应用程序,我得到结果为XML时Web浏览器这样的显示器
in my web application, i get result as xml when display on web browser like this
<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文件显示为类似下面的文字:
i want above XML file display as text like below:
Message accepted for delivery
Message ID: IEUHSHIL
Recipient: +441234567
我如何转换XML文件上面的文字?
how can i convert xml file to text above?
答
修改
的来源$ C $ C 的
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文件中的
Note : make use of XDocument.Parse
if you are passing string instead of xml file.
简单的方法来做到这一点使用的LINQ到XML
。
Easy way to do it make use of Linq To XML
.
检查那边: 阅读使用LINQ to XML的XML文档
Check over there : 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
};