c # функция xml, чтобы проверить, равна ли строка атрибуту xml, чтобы добавить выбранный элемент комбинированного списка в текстовое поле - PullRequest
0 голосов
/ 23 мая 2010

Я хочу проверить combobox.selecteditem.tostring () в выпадающем списке, выбранном в xml с несколькими узлами, где каждый из них имеет атрибут с именем "name"

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        textBox1.AppendText(nameAttributeCheck(comboBox1.SelectedItem.ToString()));
    }
    catch { 
    }
}

private string nameAttributeCheck(string a)
{
    XmlDocument doc = new XmlDocument();
    doc.Load("armor.xml");

    XmlElement root = doc.DocumentElement;
    XmlNodeList items = root.SelectNodes("/items");

    String result = null;

    try
    {
        foreach (XmlNode item in items)
        {
                if (string.Equals(a, item.Attributes["name"].InnerText.ToString()))
                {
                    result += item.Attributes["picture"].InnerText.ToString();
                }
        }

    }
    catch
    {
    }
    return result;

}

каждый раз, когда я пробую егоничего не происходит

1 Ответ

0 голосов
/ 23 мая 2010

хорошо, я понял

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        textBox1.AppendText(nameAttributeCheck(comboBox1.SelectedItem.ToString()));
    }
    catch { 
    }
}

private string nameAttributeCheck(string a)
{
    XmlDocument doc = new XmlDocument();
    doc.Load("armor.xml");

    XmlElement root = doc.DocumentElement;
    XmlNodeList items = root.SelectNodes("/items/item");

    String result = null;

    try
    {
            for (int i = 0; i < items.Count; i++)
            {

                if (string.Equals(a, items[i].Attributes["name"].InnerText.ToString()))
                {
                    result += items[i].Attributes["name"].InnerText.ToString();
                }
            }               
    }
    catch
    {
    }
    return result;
}
...