使用 LINQ 解析 XML 问题

发布于 2024-11-11 13:59:37 字数 1268 浏览 4 评论 0原文

我想从 XML 文件中获取一些值并使用 LINQ 将它们插入到 ListBox 中。我哪里错了?

<?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> 

隐藏代码:

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);
    }        
}

I want to get some values from the XML file and insert them into a ListBox using LINQ. 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);
    }        
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

楠木可依 2024-11-18 13:59:37
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);
}

或者

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();
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();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文