有了這個代碼,我得到的HTLM文件:掌握Xpath的UWP C#中的HTML元素的標題
private static async Task<HtmlDocument> GetHtmlOfPage(string website)
{
return await new HtmlWeb().LoadFromWebAsync(website);
}
元素的XPath是:
id('ContentHolderMain_ContentHolderMainContent_ContentHolderMainContent_pnlDaily')/x:div/x:ol/x:li[3]/x:ul
(使用XPath檢查器爲Firefox )。
用於檢索值的代碼:
public List<string> GetTypesOfFood(string website)
{
List<string> TypesOfFood = new List<string>();
HtmlDocument document = GetHtmlOfPage(website).Result;
/* HtmlNode docNodes = document.DocumentNode;
HtmlNode ul = docNodes.Element("id('ContentHolderMain_ContentHolderMainContent_ContentHolderMainContent_pnlDaily')/x:div/x:ol/x:li[1]/x:ul[@title]");*/
HtmlNode div = document.GetElementbyId("ContentHolderMain_ContentHolderMainContent_ContentHolderMainContent_pnlDaily");
if(div != null)
{
var ul = div.Element("//div[@class='holderRestaurantInfo']/ol/li[1]/ul/@title").GetAttributeValue("title", "title");
string a = ul;
TypesOfFood.Add(a);
}
return TypesOfFood;
}
我期待像 「肉」 的價值觀, 「Vegatarian」,....但我沒有得到任何結果。我做錯了什麼以及如何將Xpath與UWP一起使用?
更新(2017年6月21日):
我終於設法得到我一直在尋找的值:
public List<string> GetTypesOfFood()
{
if(!InternetConnection)
{
flag = -3;
return null;
}
List<string> TypesOfFood = new List<string>();
WebResponse response = GetResponse().Result;
Stream stream = response.GetResponseStream();
string result = "";
using (StreamReader sr = new StreamReader(stream))
{
result = sr.ReadToEnd();
}
HtmlDocument MobileDocument = new HtmlDocument();
MobileDocument.LoadHtml(result);
var images = MobileDocument.DocumentNode.SelectNodes("//img[@class='pull-right']");
foreach(var image in images)
{
HtmlAttribute title = image.Attributes[@"title"];
TypesOfFood.Add(title.Value);
}
return TypesOfFood;
}
private async Task<WebResponse> GetResponse()
{
WebRequest req = WebRequest.Create("https://www.studentska-prehrana.si/sl/restaurant/Details/2521");
WebResponse r = await req.GetResponseAsync();
return r;
}
編輯:這似乎也是我的Firefox的XPath插件由於過時「x:」標誌。沒有代碼使用它們。
感謝您的解決方案。我的代碼有一天工作,然後整個網站得到更新,現在有一個新的HTML格式,但無論如何感謝提示。該網站是https://www.studentska-prehrana.si/sl/restaurant/Details/2521#和Xpath是: id('menu-list')/ x:div [2]/x:div/x :div/x:div [2]/x:i/x:img 文本抓取的代碼我會自己寫。 – S4NNY1