C# 将所有XML文件标记加载到DropDownList中

C# 将所有XML文件标记加载到DropDownList中,c#,asp.net,xml,C#,Asp.net,Xml,我是一名初学者,我想选择一个XML文件并将其元素(即,带有标签的文件,如等)加载到DropDownList中 在一个单独的文本框中,它应该计算并显示特定标记或元素出现的次数 当从DropDownList中选择特定元素时,该元素中的内容、描述(包括子元素)应显示在文本框中 我正在使用ASP.NET和C 徖 Thanx非常感谢所有阅读并回复我答案的人。 Iam仅使用ASP.NET3.5 确切地说,我会解释 XML文件的示例 XML文件 例如: 这里我的pblm是,我无法将XML标记加载到Dropdo

我是一名初学者,我想选择一个XML文件并将其元素(即,带有标签的文件,如等)加载到DropDownList中

在一个单独的文本框中,它应该计算并显示特定标记或元素出现的次数

当从DropDownList中选择特定元素时,该元素中的内容、描述(包括子元素)应显示在文本框中

我正在使用ASP.NET和C

Thanx非常感谢所有阅读并回复我答案的人。 Iam仅使用ASP.NET3.5

确切地说,我会解释

XML文件的示例 XML文件

例如:

这里我的pblm是,我无法将XML标记加载到Dropdownlist中


请帮帮我你的问题不是100%清楚,但让我们试一试

首先,让我们创建一个具有ElementName属性和XElement属性的类,该属性覆盖ToString方法,我们可以使用该方法填充下拉列表

  public class displayclass
  {
    public string ElementName { get; set; }
    public XElement Element { get; set; }
    public override string ToString()
    {
      return ElementName;
    }
  }
然后,我们可以轻松地将元素添加到组合框中,元素名称作为文本,如下所示

//Some Sample Xml
  XElement xe = new XElement("Root",
    new XElement("Customer",
      new XAttribute("Name", "John Smith"),
      new XAttribute("CreditLimit", 1500)),
    new XElement("Employee",
      new XAttribute("Name", "Fred Nerk")),
    new XElement("Employee",
      new XAttribute("Name", "Sally Silverton")));

  var elemList = from x in xe.Elements()
                 select new displayclass { ElementName = x.Name.ToString(), Element = x };
  foreach (var item in elemList)
  {
    comboBox1.Items.Add(item);
  }
现在让我们使用列表中的GROUPBY子句将元素的计数添加到文本框中

  var qry = from dispObj in elemList
            group dispObj by dispObj.ElementName;
  StringBuilder sb = new StringBuilder();
  foreach (var grp in qry)
  {
    int count = grp.Count();
    sb.AppendLine(string.Format("{0}({1})", grp.Key,grp.Count()));
  }
  textBox1.Text = sb.ToString();
最后,让我们向Combobox的selected index change事件添加一个事件处理程序,以显示元素的内容

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  displayclass disp = comboBox1.SelectedItem as displayclass;
  if (disp != null)
  {
    textBox2.Text = disp.Element.ToString();
  }
}

我认为这满足了您上面列出的要求。

您的问题不是100%清楚,但让我们试一试

首先,让我们创建一个具有ElementName属性和XElement属性的类,该属性覆盖ToString方法,我们可以使用该方法填充下拉列表

  public class displayclass
  {
    public string ElementName { get; set; }
    public XElement Element { get; set; }
    public override string ToString()
    {
      return ElementName;
    }
  }
然后,我们可以轻松地将元素添加到组合框中,元素名称作为文本,如下所示

//Some Sample Xml
  XElement xe = new XElement("Root",
    new XElement("Customer",
      new XAttribute("Name", "John Smith"),
      new XAttribute("CreditLimit", 1500)),
    new XElement("Employee",
      new XAttribute("Name", "Fred Nerk")),
    new XElement("Employee",
      new XAttribute("Name", "Sally Silverton")));

  var elemList = from x in xe.Elements()
                 select new displayclass { ElementName = x.Name.ToString(), Element = x };
  foreach (var item in elemList)
  {
    comboBox1.Items.Add(item);
  }
现在让我们使用列表中的GROUPBY子句将元素的计数添加到文本框中

  var qry = from dispObj in elemList
            group dispObj by dispObj.ElementName;
  StringBuilder sb = new StringBuilder();
  foreach (var grp in qry)
  {
    int count = grp.Count();
    sb.AppendLine(string.Format("{0}({1})", grp.Key,grp.Count()));
  }
  textBox1.Text = sb.ToString();
最后,让我们向Combobox的selected index change事件添加一个事件处理程序,以显示元素的内容

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
  displayclass disp = comboBox1.SelectedItem as displayclass;
  if (disp != null)
  {
    textBox2.Text = disp.Element.ToString();
  }
}

我认为这满足了上面列出的要求。

一个XML文件可以有很多层次的层次结构数据。。。。是否要将所有元素加载到下拉列表中?真的吗您能给我们看一个示例XML并告诉我们您想从中加载什么吗?您使用的是哪个版本的.NET?3.5或更高?在这种情况下,您可以使用Linq转换为XML,否则您将需要使用XmlDocument Parsing XML文件可以有很多层次的层次结构数据。。。。是否要将所有元素加载到下拉列表中?真的吗您能给我们看一个示例XML并告诉我们您想从中加载什么吗?您使用的是哪个版本的.NET?3.5或更高?在这种情况下,您可以使用Linq-to-XML,否则您需要使用XmlDocument-Parsing,只要他在.NET 3.5或更高版本上就可以了-Linq-to-XML在.NET 2.0/3.0中不存在:-当然,但我要对任何使用XML的人说,使用3.5,这样你就可以使用LINQtoXML。如果他使用的是.NET3.5或更高版本-LINQtoXML在.NET2.0/3.0中不存在:-当然,但我想对任何使用XML的人说,使用3.5,这样你就可以使用LINQtoXML。