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