[英]Parsing XML problem with LINQ
I want to get some values from the XML file and insert them into a ListBox using LINQ.我想从 XML 文件中获取一些值,然后使用 LINQ 将它们插入到 ListBox 中。 Where am I wrong?我哪里错了?
<?xml version="1.0" encoding="UTF-8"?>
<tells>
<defindividual name="name1"/>
<instanceof>
<individual name="name1"/>
<catom name="value"/>
</instanceof>
<defindividual name="name2"/>
<instanceof>
<individual name="name2"/>
<catom name="value"/>
</instanceof>
<defindividual name="name3"/>
<instanceof>
<individual name="name3"/>
<catom name="otherValue"/>
</instanceof>
</tells>
Code-behind:代码隐藏:
protected void Button1_Click(object sender, EventArgs e)
{
XDocument owlXML = XDocument.Load(Server.MapPath("App_Data\\myFile.xml"));
var items = from item in owlXML.Descendants("instanceof")
where item.Element("catom").Attribute("name").Value == "value"
select new
{
catom = item.Element("catom").Attribute("name").Value
};
foreach (var item in items)
{
//ListBox1.DataSource = item;
//ListBox1.DataBind();
ListBox1.Items.Add(item.catom);
}
}
var names = from item in owlXML.Descendants("instanceof")
let name = item.Element("catom").Attribute("name") // cache
where name.Value == "value"
select name;
foreach (var name in names.ToArray())
{
ListBox1.Items.Add(name);
}
or或者
var items = from item in owlXML.Descendants("instanceof")
let name = item.Element("catom").Attribute("name") // cache
where name.Value == "value"
select new { catom = name }; // if ListBox is configured to field="catom"
ListBox1.DataSource = items.ToArray(); // items!
ListBox1.DataBind();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.