đây là lần đầu tiên tôi cố gắng lấy giá trị phần tử bằng HAP. Tôi nhận được một lỗi đối tượng null khi tôi cố gắng sử dụng InnerText.Gói Agility HTML - sử dụng XPath để nhận một nút đơn - Tham chiếu đối tượng không được đặt thành một thể hiện của đối tượng
URL tôi đang cạo là: - http://www.mypivots.com/dailynotes/symbol/659/-1/e-mini-sp500-june-2013 Tôi đang cố gắng lấy giá trị cho mức cao hiện tại từ Bảng tóm tắt thay đổi ngày.
Mã của tôi ở dưới cùng. Thứ nhất, tôi chỉ muốn biết nếu tôi đang đi về điều này đúng cách? Nếu vậy, thì đơn giản là giá trị XPath của tôi không chính xác?
giá trị XPath thu được bằng cách sử dụng một tiện ích mà tôi tìm thấy được gọi là trình trợ giúp htmlagility. Phiên bản firebug của XPath bên dưới, cũng cho cùng một lỗi: - /html/body/div [3]/div/table/tbody/tr [3]/td/table/tbody/tr [5]/td [ 3]
mã của tôi: -
WebClient myPivotsWC = new WebClient();
string nodeValue;
string htmlCode = myPivotsWC.DownloadString("http://www.mypivots.com/dailynotes/symbol/659/-1/e-mini-sp500-june-2013");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlCode);
HtmlNode node = doc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[3]/div[1]/table[1]/tbody[1]/tr[3]/td[1]/table[1]/tbody[1]/tr[5]/td[3]");
nodeValue=(node.InnerText);
Cảm ơn, Will.
Cảm ơn đống, hoạt động. Tôi sẽ nghiên cứu giải thích của bạn về XPath, tôi nghĩ rằng tôi sẽ có thể làm được điều này mà không thực sự học cách sử dụng XPath, nhưng rõ ràng tôi sẽ phải làm như vậy. – dontpanic
@dontpanic: Tìm hiểu 'xpath', đặt câu hỏi về cách tinh chỉnh các truy vấn' xpath' của bạn, có rất nhiều câu hỏi & câu trả lời 'xpath' trên SO. – MattH
@Simon: Vì vậy, tôi đang gặp vấn đề tương tự và tôi đã thử theo đề xuất của bạn và vẫn không có may mắn. Bạn có thể hiển thị ví dụ từ bất kỳ giá trị nào từ bảng bên dưới trong http://weather.deltixlab.com/ Tôi có văn bản sau: 'string day1 = doc.DocumentNode.SelectNodes (" // * [@ class = 'table-block'] /../../../ tr [1]/td [1] ") [0] .InnerText;' – goodfella