从外部网站获取 xml 数据
本文关键字:数据 xml 获取 网站 从外部 | 更新日期: 2023-09-27 18:33:04
我有一个应用程序,可以从外部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");
应该是:
XElement xelement = XElement.Load("http://www.test.com/file.xml");
我在想也许我应该将内容存储到数组或其他东西中,并检查以确保 searchString 是否在其中?
我不确定如何进行以及最好使用什么,也许我什至不应该使用 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
}
}
你将不得不做更多的工作,而不仅仅是提供一个URL。
相反,您将需要使用 WebRequest 类获取 XML 文件。 如果请求成功,您就可以将其用作 XElement.Load 的参数。
示例(仅供说明,出于对 Pete 的热爱添加一些错误处理):
WebRequest request = WebRequest.Create("http://www.test.com/file.xml");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
XElement doc = Xelement.Load(dataStream);