C# 在文本框C中显示从Combobox中选择的XML数据
您好,我正在学习C,我正在尝试在组合框中选择User1.xml中的xml信息后,将其显示在同一表单的文本框中 我已使用此代码成功地用名称标记填充组合框。以便可以选择用户名C# 在文本框C中显示从Combobox中选择的XML数据,c#,xml,visual-studio,C#,Xml,Visual Studio,您好,我正在学习C,我正在尝试在组合框中选择User1.xml中的xml信息后,将其显示在同一表单的文本框中 我已使用此代码成功地用名称标记填充组合框。以便可以选择用户名 private void Form1_Load(object sender, EventArgs e) { XmlDocument sFor = new XmlDocument(); sFor.Load(Path.GetFullPath("User1.xml")); XmlNodeList SearchLis
private void Form1_Load(object sender, EventArgs e)
{
XmlDocument sFor = new XmlDocument();
sFor.Load(Path.GetFullPath("User1.xml"));
XmlNodeList SearchList = sFor.SelectNodes("employee/user/name");
foreach (XmlNode Search in SearchList)
{
comboBox1.Items.Add(Search.InnerText);
}
}
XML的格式是这样的
在组合框中选择后,如何使用linq或xmlreader或其他方式在textBox2中显示信息
谢谢。如果这对您有帮助的话
XDocument doc = XDocument.Load(Path.GetFullPath("User1.xml"));
var rows = doc.Descendants("employee").Descendants("user").Select(el => new()
{
department = el.Element("department").Value,
manager = el.Element("manager").Value,
hours = el.Element("hours").Value,
leave = el.Element("leave").Value,
});
或者从这样的数据集
DataSet ds = new DataSet();
ds.ReadXmlSchema(new StreamReader("User1.xml"));
ds.ReadXml(new StreamReader("User1.xml"));
我在寻找城市的DataGridView上做了类似的事情。输入字段为Textbox1.Text。我希望这不是过分的。这要归功于Stack的海报,他们向我展示了如何做到这一点!我先提取特定数据,然后将其加载到列表中。最后,将该列表作为DGV的数据源。这可能适用于组合框…是吗
<TaxTbl>
<TaxSite>
<Location>Axx</Location>
<Address>xxx</Address>
<City>aaa</City>
<State> st</State>
<Zip>xxx</Zip>
</TaxSite>
<TaxSite>
<Location>Bxxx</Location>
<Address>xxx</Address>
<City>xxx</City>
<State> st</State>
<Zip>xxx</Zip>
</TaxSite>
</TaxTbl>
var xdoc = XDocument.Load("C:\\Users\\Harley\\desktop\\outfile.xml");
var NewDoc = new XDocument(new XElement("TaxTbl",
from anEntry in xdoc.Element("TaxTbl").Elements("TaxSite")
where anEntry.Element("City").Value.Contains(textBox1.Text)
select anEntry));
var MyList =
(from bEntry in NewDoc.Descendants("TaxSite")
select new
{
Location = bEntry.Element("Location").Value,
Address = bEntry.Element("Address").Value,
City = bEntry.Element("City").Value,
State = bEntry.Element("State").Value,
Zip = bEntry.Element("Zip").Value
}).ToList();
cityDGV.DataSource = MyList.ToList();
是否要从XML内部或整个XML本身输出值?textBox2在哪里定义?输出与从组合框中选择的用户名相关的整个用户的信息。不确定定义是什么意思?textBox2与其他组合框和textBox的和在同一表单中初始化。同样为了澄清,我想显示单个用户的详细信息、部门、经理等。xml文档包含多个用户。我曾尝试实现此解决方案,但在第3行var rows=doc.genderantsEmployee.genderantsUser.Selectel=>new处收到一个编译器错误—在它声称的预期类型的双括号处。删除方括号可以进行编译,但不能按预期工作。我用一个组合框对此进行了检查,它确实用关联的节点标记获取了数据。呸。与前面的答案一样,您可以加载带有节点内部文本的变量,然后将其转储到组合框中。您好,我也在同一点上,我已经设法获得了将xml数据拉入类似数组的结构的代码,但我不确定如何将其重复到文本框中。如果您查看第二部分,与第一个答案类似,元素值分配给变量的位置。。。您可以将这些值作为一个字符串,并将该字符串添加到文本框输出中。或你可以把它分解成每个变量的标签,比如名字标签、地址标签、城市标签等等。我希望我的例子很容易理解。我把我创建的收费表放在一个文本框中。看起来像…textBox2.Text=MyList[0]。ToString;
<TaxTbl>
<TaxSite>
<Location>Axx</Location>
<Address>xxx</Address>
<City>aaa</City>
<State> st</State>
<Zip>xxx</Zip>
</TaxSite>
<TaxSite>
<Location>Bxxx</Location>
<Address>xxx</Address>
<City>xxx</City>
<State> st</State>
<Zip>xxx</Zip>
</TaxSite>
</TaxTbl>
var xdoc = XDocument.Load("C:\\Users\\Harley\\desktop\\outfile.xml");
var NewDoc = new XDocument(new XElement("TaxTbl",
from anEntry in xdoc.Element("TaxTbl").Elements("TaxSite")
where anEntry.Element("City").Value.Contains(textBox1.Text)
select anEntry));
var MyList =
(from bEntry in NewDoc.Descendants("TaxSite")
select new
{
Location = bEntry.Element("Location").Value,
Address = bEntry.Element("Address").Value,
City = bEntry.Element("City").Value,
State = bEntry.Element("State").Value,
Zip = bEntry.Element("Zip").Value
}).ToList();
cityDGV.DataSource = MyList.ToList();