我有一個應用程序從外部rss訂閱源獲取每日訂閱源(此數據以xml格式)。 我有一個搜索表單,允許用戶搜索我的數據庫,但是,我想使用用戶在我的網站上輸入的相同搜索字符串來搜索此RSS源,然後只提取相關內容,並將其顯示在我的網站上。從外部網站獲取xml數據
我一直在尋找使用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
}
}
在我回答這個問題:http://stackoverflow.com/questions/10412494/timeout-error-when -loading-xml-from-url/10412665#10412665我給出了從URL返回XmlDocument的通用方法。這將需要最少的工作來轉換爲返回XDocument。 – dash
如果這是一種標準的RSS格式(RSS或Atom),您還需要處理LINQ語句中的命名空間。 – Tim
請根據你的意見看我的新編輯 – NULL