我想在 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();
您好,我创建了一个包含励志名言的 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();