开发者

code to populate a combobox with values from an xml file

开发者 https://www.devze.com 2023-03-02 01:01 出处:网络
How to populate combobox with values from an xml fil开发者_JAVA技巧e. Using XmlDocument class you can loop thru the nodes of xml file and then just go on adding items to dropdownlist.

How to populate combobox with values from an xml fil开发者_JAVA技巧e.


Using XmlDocument class you can loop thru the nodes of xml file and then just go on adding items to dropdownlist. Sample code:

 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);
    }

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


You will have to read in the data from the file and you can use something like dataset.ReadXML() and then use that to set your binding for your combobox.

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

Update: Note that there are two DataGrid classes. The one that has the DataBind() method is in the System.Web.UI.WebControls namespace. The windows form control does not hav the DataBind method and should work without that line. See: http://msdn.microsoft.com/en-us/library/system.windows.forms.datagrid.datasource.aspx


Given this 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>

We can get to the data a few ways. This class has two methods, the first will loop through all the nodes until it gets to the data we want. The second will use the XmlDocument.GetElementsByTagName() method to go right to the data we want.

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 data you need, you can add the 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())

See

XmlDocument

XmlNodeList

XmlNode

XmlAttributeCollection

XmlAttribute

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号