挣扎与c#,从XML读取在我的生成器

本文关键字:我的 读取 XML 挣扎 | 更新日期: 2023-09-27 18:07:53

我放弃了在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和最后一个数字之间选择一个随机数的技巧都会非常有趣。

任何帮助、提示或建议都是非常感谢的。

挣扎与c#,从XML读取在我的生成器

使用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)) + ".";