我要做的是从xml文件中读取一些数据,并在用户单击列表框中的项目时将数据分配给标签。这是我试过的代码,代码编译但我的标签没有任何反应。
private void lbAllModules_SelectedIndexChanged(object sender, EventArgs e)
{
XmlTextReader inforeader = new XmlTextReader(workingDir + @"\modules.xml");
while (inforeader.Read())
{
if ((inforeader.NodeType == XmlNodeType.Element) && (inforeader.Name == "modulecode"))
{
if (inforeader.HasAttributes)
{
lblCodeOut.Text = inforeader.GetAttribute(0);
}
}
}
}
答案 0 :(得分:0)
如果您想使用LINQ to XML:
XDocument loaded = XDocument.Load(@"C:\modules.xml");
// Query the data for first attribute of element 'modecode'
var q = from c in loaded.Descendants("modulecode")
where c.HasAttributes
select (string)c.Attributes().FirstOrDefault();
foreach (var item in q)
{
Console.WriteLine(item);
}
答案 1 :(得分:0)
确保您的节点被称为“modulecode”。比较区分大小写。你可以使用
string.Compare(inforeader.Name,"modulecode", StringComparison.OrdinalIgnoreCase) == 0;
用于不区分大小写的比较。然后尝试
if(inforeader.MoveToFirstAttribute())
lblCodeOut.Text = inforeader.Value;