Code to populate combobox with values ​​from XML file

How to populate combobox with values ​​from xml file.

+5
source share
3 answers

You will need to read the data from the file, and you can use something like dataset.ReadXML (), and then use this to set the binding for your field.

Here is an example to get you started. http://www.codeproject.com/KB/cs/dropdownfromxml.aspx

Update: Please note that there are two DataGrid classes. One that has a DataBind () method is in the System.Web.UI.WebControls namespace. The window shape control does not have a DataBind method and should work without this line. See: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.datasource.aspx

+4
source

Using the XmlDocument class, you can scroll through the nodes of an XML file, and then simply add items to the drop-down list. Code example:

 XmlDocument doc = new XmlDocument();
    doc.Load(Server.MapPath("regis.xml"));
    XmlNodeList colorList = doc.SelectNodes("Information/Comments/Name");
    foreach (XmlNode Name in colorList)
    {
      DropDownList1.Items.Add(Name.InnerText);
    }

Link: http://r4r.co.in/asp.net/01/tutorial/asp.net/How%20to%20populate%20combobox%20from%20xml%20file%20using%20c-Sharp%20in%20asp.net. shtml

+7
source

XML

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <node1 attribute1="attrib1" attribute2="attrib2">
        <node2>
            <node3>Item1</node3>
            <node3>Item2</node3>
            <node3>Item3</node3>
        </node2>
    </node1>
</root>

. : , . XmlDocument.GetElementsByTagName(), .

using System;
using System.Xml;
using System.Collections.Generic;

public static class MyXmlParser
{
    ///This method will loop through each node to get to the data we want.
    public static List<string> GetItemsFromXmlByLoopingThroughEachNode(string Filename)
    {
        //Create a list to store all the items.
        List<string> Items = new List<string>();

        //Load the document from a file.
        XmlDocument doc = new XmlDocument();
        doc.Load(Filename);

        //Loop through all the nodes in the document.
        foreach(XmlNode RootNode in doc.ChildNodes)
        {
            if(RootNode.NodeType != XmlNodeType.XmlDeclaration)
            {//If the node is not the declaration node parse it.

                //Loop through all the child nodes of <root>
                foreach(XmlNode Node1Node in RootNode.ChildNodes)
                {
                    //Read Attributes of <node1>
                    XmlAttributeCollection attributes = Node1Node.Attributes;
                    XmlAttribute Attribute1 = attributes["attribute1"];
                    //Attribute1.Value will give you the string contained in the attribute.

                    //Loop through all child nodes of <node1>
                    foreach(XmlNode Node2Node in Node1Node.ChildNodes)
                    {
                        //Loop through all child nodes of <node2>
                        foreach(XmlNode Node3Node in Node2Node.ChildNodes)
                        {
                            //These nodes contain the data we want so lets add it to our List.
                            Items.Add(Node3Node.InnerText);
                        }
                    }
                }           
            }
        }
        //Return the List of items we found.
        return Items;
    }

    ///This method will use GetElementsByTagName to go right to the data we want.
    public static List<string> GetItemsFromXmlUsingTagNames(string Filename, string TagName)
    {
        //Create a list to store all the items.
        List<string> Items = new List<string>();

        //Load the document from a file.
        XmlDocument doc = new XmlDocument();
        doc.Load(Filename);

        //Get all the <node3> nodes.
        XmlNodeList Node3Nodes = doc.GetElementsByTagName(TagName);
        //Loop through the node list to get the data we want.
        foreach(XmlNode Node3Node in Node3Nodes)
        {
            //These nodes contain the data we want so lets add it to our List.
            Items.Add(Node3Node.InnerText);
        }
        //Return the List of items we found.
        return Items;       
    }
}

Once you have the necessary data, you can add items to the ComboBox

//Get the items from the XML file.
List<string> Items = MyXmlParser.GetItemsFromXmlUsingTagNames("C:\\test.xml","node3");
//Add them to the ComboBox
ComboBox1.Items.AddRange(Items.ToArray())

Cm.

Xmldocument

XmlNodeList

Xmlnode

XmlAttributeCollection

XmlAttribute

+2
source

All Articles