我一直试图从名为“tim_new”的类中提取链接 . 我也得到了一个解决方案 .
解决方案,摘要和必要信息都给出了here
上面说的XPATH查询是 "//a[@class='tim_new']
,我的问题是,这个查询如何区分片段的第一行(在上面的链接和片段的第二行中给出) .
更具体地说,这个XPATH查询的字面翻译(英文)是什么 .
此外,我想写几行代码来提取针对 NSE:
的文本 .
<div class="FL gL_12 PL10 PT15">BSE: 523395 | NSE: 3MINDIA | ISIN: INE470A01017</div>
非常感谢帮助形成必要的选择查询 .
我的代码写成:
IEnumerable<string> NSECODE = doc.DocumentNode.SelectSingleNode("//div[@NSE:]");
但这看起来并不合适 . 会感激一些帮助 .
1 回答
第一个选择中的XPath读取“选择具有名为class的属性且值为tim_new的所有文档元素” . 括号中的内容不是您要返回的内容,而是您应用于搜索的标准 .
我没有HTML Agility包,但是如果你试图查询以“NSE:”作为文本的div,那么第二个查询的XPath应该只是“// div”然后你要过滤使用LINQ .
就像是
所以在英文中,“将所有立即包含文本的div元素返回给LINQ,然后检查内部文本值是否包含NSE:” . 同样,我不确定语法是否完美,但这就是主意 .
XPath“// div [@NSE:]”将返回所有具有名为NSE:的属性的div,无论如何这都是非法的,因为属性名称中不允许使用“:” . 您正在寻找元素的文本,而不是其中一个属性 .
希望有所帮助 .
注意:如果您有嵌套的div,它们都包含
<div>NSE: some text<div>NSE: more text</div></div>
中的文本,那么您将获得重复的结果 .