在C#中苦苦挣扎,在我的生成器中读取XML

时间:2013-04-06 16:32:44

标签: c# xml arrays random

我放弃了在Excel中执行此操作,因此我创建了一个XML文件(名为“ideas.xml”),如下所示:

<ideas>
<verbs>
    <verb>Verb1</verb>
    <verb>Verb2</verb>
    <verb>Verb3</verb>
    <verb>Verb4</verb>
    <verb>Verb5</verb>

</verbs>
<adjectives>
    <adjective>Adjective1</adjective>
    <adjective>Adjective2</adjective>
    <adjective>Adjective3</adjective>
    <adjective>Adjective4</adjective>
    <adjective>Adjective5</adjective>
</adjectives>
<nouns>
    <noun>Noun1</noun>
    <noun>Noun2</noun>
    <noun>Noun3</noun>
    <noun>Noun4</noun>
    <noun>Noun5</noun>
</nouns>
</ideas>

我正在尝试制作一个能够打印出随机动词,形容词和名词的生成器。这是我正在努力的作品:

    public void button1_Click(object sender, EventArgs e)
    {


        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load("ideas.xml");

        Random r = new Random();
        XmlNodeList verbTag = xmlDoc.GetElementsByTagName("verb");
        XmlNodeList adjectiveTag = xmlDoc.GetElementsByTagName("adjective");
        XmlNodeList nounTag = xmlDoc.GetElementsByTagName("noun");


        textBox1.Text = ((verbTag[0].InnerText) + " " + (adjectiveTag[0].InnerText) + " " + (nounTag[0].InnerText)) + ".";
    }

我正在尝试将一个随机数发生器添加到输出中,但我似乎无法正确使用它。另外,我打印出数组中的第一个值只是为了让它工作,任何关于如何在0和最后一个之间选择一个随机数的提示都会非常甜蜜。

非常感谢任何帮助,提示或建议。

1 个答案:

答案 0 :(得分:0)

使用您的r变量(Random类实例)生成索引,而不是代码中的硬编码0

textBox1.Text = ((verbTag[r.Next(0, verbTag.Count - 1)].InnerText) + " " + (adjectiveTag[r.Next(0, adjectiveTag.Count - 1)].InnerText) + " " + (nounTag[r.Next(0, nounTag.Count - 1)].InnerText)) + ".";