在MessageBox中存储和显示xml值

时间:2018-05-30 11:58:01

标签: c# xml

<?xml version="1.0" standalone="yes"?>
<Subject>
  <Book>
    <Name>ASP.NET</Name>
    <Author>ABC</Author>
    <Published>2018</Published>
    <Price>$100</Price>
  </Book>
</Subject>   

以上是我的xml文件。我想使用C#中的Dictionary或Collections存储xml节点和值,并使用winforms在消息框中显示这些节点和值。

输出应为:

Name: ASP.NET   
Author: ABC   
Published: 2018   
Price: $100     

我尝试了以下但是收到了很多错误......

var doc = XDocument.Load(@"xmlfile.xml");
var rootNodes = doc.Root.DescendantNodes().OfType<XElement>();
var keyValuePairs = from n in rootNodes
                    select new
                    {
                        TagName = n.Name,
                        TagValue = n.Value
                    };

var allitems = new Dictionary<string, string>();
foreach (var node in rootNodes)
{
    allitems.Add(node.Name.ToString(), node.Value);
    //string str = string.Join("",allitems);
    MessageBox.Show(allitems);
}

2 个答案:

答案 0 :(得分:0)

首先应该将XML解析为对象(Convert XML String to Object)。

然后你可以简单地实现该类型的ToString()方法,以便很好地打印它。

答案 1 :(得分:0)

我认为对于这部分,您需要将其转换为.cs文件,XML无法检索消息框......

在.cs文件中,您还可以尝试将消息框的代码放入

MessageBox.Show(//把东西放在那里,你想要显示这个输出);