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

时间:2011-06-16 16:16:15

标签: c# xml linq search gridview

在整个网络开发事件和谷歌搜索的早晨以及通过堆栈溢出看到的相当新的事情已经指向了正确的方向,但我仍然遇到问题。

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

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

我有一个文本框,(txtName)和一个Button(btnSearch)。我希望能够从txtName.text获取输入并将其显示在我的网格视图中。我目前在面板中设置了所有这些,其中一个面板用于txtName和btnSearch,它始终可见。我有另一个带有网格视图的面板,它拉动整个XML文件,最后是第三个具有相同网格视图的面板,我打算将其用作&#34;搜索结果。&#34;我认为可以读取它,只需重新加载已经显示的gridview。

1 个答案:

答案 0 :(得分:0)

所以你想要做这样的事情来搜索节点,找到一个具有特定名称的节点。那么你只需要对结果做任何你想做的事......

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