我是Xpath表达的新手,我有一些问题要问。
我想将字符串selectedcountry插入到我的xpath表达式中,所以我尝试这样编码,//a[contains(@href, "+selectedCountry+")]/text()
但是找回了我想要的错误数据。
会话中的selectedCountry字符串是从用户检索的,因此我确信其中的值是正确的。
当我更改为//a[contains(@href," "+selectedCountry+" ")]/text()
时,会出现以下错误:
发生了'System.ArgumentNullException'类型的异常 System.Core.dll但未在用户代码中处理
附加信息:值不能为空。
情况1
string selectedCountry = Session["SelectedCountry"].ToString();
HtmlNode[] newnode = doc3.DocumentNode.SelectNodes("//a[contains(@href,'china')]/text()").ToArray();
结果:
中国在有争议的海域支持与菲律宾的联合能源开发 中国敦促东盟拒绝外界干涉巴拿马开放大使馆 在削减与台湾关系后的中国,博茨瓦纳确认了达赖喇嘛的访问 尽管中国愤怒
情况2
string selectedCountry = Session["SelectedCountry"].ToString();
HtmlNode[] newnode = doc3.DocumentNode.SelectNodes("//a[contains(@href,"+selectedCountry+")]/text()").ToArray();
结果:
跳转到主要亚洲 PacificSingaporeWorldCNA InsiderBusinessSportLifestyleTechnologyHealthCommentaryCatch-up TV
答案 0 :(得分:0)
如果"//a[contains(@href, 'china')]/text()"
有效但"//a[contains(@href, "+selectedCountry+")]/text()"
没有,请确保selectedCountry
包含'china'
,包括撇号
如果它不包含撇号,请将它们添加到变量中或将它们添加到字符串中:
"//a[contains(@href, '"+selectedCountry+"')]/text()"