我想在 C# 中创建一个包含我的 xmldocument 节点的数组

I want to create an array containing my xmldocument nodes in c#

您好,我创建了一个包含励志名言的 xml 文件,我想将这些名言读入数组。

这是我的 xml 文件的样子:

<?xml version="1.0" encoding="utf-8" ?> 
<MotivationalQuotes>
  <quotation>
    <quote>Life is about making an impact, not making an income</quote>
    <author>Kevin Kruse</author>
  </quotation>

  <quotation>
    <quote>Whatever the mind of man can conceive and believe, it can achieve</quote>
    <author>Napoleon Hill</author>

  </quotation>

</MotivationalQuotes>

我试图将每个单独的引文(没有作者)存储到一个数组中,到目前为止我有下面的代码工作 - 它创建了一个消息框并遍历 xml 文件显示来自每个引用。

1) 如何修改此代码以创建一个字符串数组,其中数组中的每一项都是一个引号(即数组中的每一项都是当前在我的 foreach 循环中显示到消息框的内容?

2) 如何 return 创建数组中的随机项?

3) 作为我的问题的扩展...我的 xml 文件目前只有励志名言,但它会有更多鼓舞人心的、有趣的等...我如何才能指定如果引用位于 MotivationalQuotes 标记内,则将引用包含在数组中。

感谢您的帮助!

public void motivate()
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("quotations.xml");
                XmlNode Node = doc.DocumentElement;

                foreach (XmlNode Node1 in Node.ChildNodes)
                {
                MessageBox.Show(Node1.FirstChild.InnerText);

                } 
            }

您应该使用 XDocument 和 LINQ。

获取所有报价

using System.Xml.Linq;

var quotes = XDocument
 .Load("quotations.xml")
 .Descendants("quote")
 .Select(q => q.Value)
 .ToArray();