通过C#中的LINQ在XML文件中按名称搜索,并在GridView中显示

本文关键字:搜索 并在 显示 GridView LINQ 中的 XML 通过 文件 | 更新日期: 2023-09-27 17:59:24

在整个web开发过程中都是全新的,一上午的谷歌搜索和查看堆栈溢出为我指明了正确的方向,但我仍然有问题。

我有一个XML文件Bricks.XML,其结构为:

<?xml version="1.0"?>
<Links>
    <Table1
        Name="Bob Smith"
        Text="GO TEAM!!!"
        Location="Tennis Court"
    />
</Links>

我有一个文本框(txtName)和一个按钮(btnSearch)。我希望能够从txtName.text中获取输入,并将其显示在我的网格视图中。我目前在面板中设置了这一切,其中一个面板用于txtName和btnSearch,它总是可见的。我有另一个面板,它的网格视图可以提取整个XML文件,最后还有第三个面板,其网格视图与我打算用作"搜索结果"的网格视图相同。

通过C#中的LINQ在XML文件中按名称搜索,并在GridView中显示

因此,您需要执行类似的操作来搜索节点,以找到具有特定名称的节点。然后你只需要对结果为所欲为。。。

string nameToSearch = "Bob";
string rawXML = null;
using (var stream = new StreamReader(File.OpenRead("<YOUR_FILE_PATH>")))
{
    rawXML = stream.ReadToEnd();
}
if (rawXML != null)
{
    XDocument doc = XDocument.Parse(rawXML);
    XElement foundNode = doc.Descendants("Table1").Where(n => n.Attribute("Name").Value.Contains(nameToSearch)).FirstOrDefault();
    if (foundNode != null)
    {
        string name     = foundNode.Attribute("Name").Value;
        string text     = foundNode.Attribute("Text").Value;
        string location = foundNode.Attribute("Location").Value;
    }
}