我有一个应用程序,每天从外部rss订阅获取数据(这些数据以xml格式呈现)。 我有一个搜索表单,允许用户搜索我的数据库,但是,我想使用用户在我的网站上输入的相同搜索字符串来搜索这个rss订阅,然后提取只与之相关的内容,并在我的网站上显示。
我一直在研究使用linq读取xml文件,使用以下代码:
XElement xelement = XElement.Load("..\\..\\Employees.xml");
IEnumerable<XElement> employees = xelement.Elements();
Console.WriteLine("List of all Employee Names along with their ID:");
foreach (var employee in employees)
{
Console.WriteLine("{0} has Employee ID {1}",
employee.Element("Name").Value,
employee.Element("EmpId").Value);
}
我对此的问题是,在代码中我在哪里使用URL而不是文件名:
XElement xelement = XElement.Load("..\\..\\Employees.xml");
should be:
XElement xelement = XElement.Load("http://www.test.com/file.xml");
我在考虑是否应该将内容存储到数组或其他数据结构中,并检查搜索字符串是否存在于其中?
我不确定该如何继续操作以及使用什么最好,也许我甚至不应该使用LINQ?
因此,根据下面的回答,我已经做了以下事情:
public void myXMLTest()
{
WebRequest request = WebRequest.Create("http://www.test.com/file.xml");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
XElement xelement = XElement.Load(dataStream);
IEnumerable<XElement> employees = xelement.Elements();
MessageBox.Show("List of all Employee Names along with their ID:");
foreach (var employee in employees)
{
MessageBox.Show(employee.Name.ToString());
/* the above message box gives me this:
{http://www.w3.org/2005/Atom}id
{http://www.w3.org/2005/Atom}name
{http://www.w3.org/2005/Atom}title
etc
*/
MessageBox.Show(employee.Element("name").Value);//this gives me error
}
}