我有一个<ul> <li>
列表即可从中提取数据,但<li>
的数字是基于网站的动态数据。
这是我的代码;
HtmlNode dordunculi = doc.DocumentNode.SelectSingleNode("//ul[@class='InfoList']/li[4]/span");
如何在做某事之前检查/li[4]
是否存在,我知道我需要使用contains
,但无法弄明白。
谢谢。
答案 0 :(得分:2)
在进行进一步处理之前,检查newVector.reserve(dist);
merge(tmp1.begin(), mid1, mid2, tmp2.end(), std::back_inserter(newVector));
是否返回值,例如:
SelectSingleNode()
或者,使用C#6.0,您可以使用方便的零传播运算符:
HtmlNode dordunculi = doc.DocumentNode.SelectSingleNode("//ul[@class='InfoList']/li[4]/span");
if(dordunculi)
{
//do something with `dordunculi`
Console.WriteLine(dordunculi.InnerText);
}
请注意,如果没有元素与整个XPath匹配,XPath只返回空。例如,Console.WriteLine(dordunculi?.InnerText);
只是在找不到/li[4]/span
的情况下返回空,没有获得NRE的风险。因此,如果您没有特定的意图进行检查但是为了避免NRE,那么您不必这样做。