0
我能够使用C#检索数据XPath并将其显示在列表中,但我想知道如何执行两个独特的操作。将条件语句添加到XPath查询
首先,我的代码示例如下:
protected async override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
string htmlPagePurchase = "";
using (var client = new HttpClient())
{
htmlPagePurchase = await client.GetStringAsync(MyURI);
}
HtmlDocument htmlDocumentPurchase = new HtmlDocument();
htmlDocumentPurchase.LoadHtml(htmlPagePurchase);
foreach (var div in htmlDocumentPurchase.DocumentNode.SelectNodes("//div[contains(@id, 'odyContent')]"))
{
PurchaseDetails newPurchase = new PurchaseDetails();
newPurchase.Expiry = div.SelectSingleNode(".//ex1").InnerText.Trim();
Purchase.Add(newPurchase);
}
lstPurchase.ItemsSource = Purchase;
}
首先,如果在页面中没有“EX1”节点,我都可以请求返回空值或它被忽略?我需要这样做,因为我使用的一些页面包含我想要的其他节点中的数据(我无法控制这个),并且如果其中一个节点不包含在内,我不希望应用程序崩溃页。其次,如果节点中不包含任何文本,我是否可以强制输出,即在“ex1”节点的列表中,某些节点包含过期日期,但一个“ex1”节点不包含任何日期,因为它没有任何日期, t过期了。如果发生这种情况,我可以返回自己的'未过期'的价值,例如?
这是在Windows Phone 8.0 Silverlight应用程序中编译的。
我不知道如何将这个并入我自己的代码中,而无需重写整个事情。我没有设置自己的字符串,这是你在你的例子中似乎已经完成的。但是,您已经强调了我希望实现的最终目标。 – 2015-03-02 14:33:28
没问题 - 我添加了一个如何在示例代码中使用的快速代码示例。 – 2015-03-02 14:43:19
谢谢杰森,完美的作品。 – 2015-03-02 14:55:58