我一直在尝试从名为“tim_new”的类中提取链接。我也得到了解决方案。
给出了解决方案、片段和必要的信息here https://stackoverflow.com/questions/2982862/extracting-a-table-row-with-a-particular-attribute-using-htmlagility-pack
上述 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:]");
但这看起来不对。希望得到一些帮助。
第一个选择中的 XPath 为“选择所有具有名为 class 且值为 tim_new 的属性的文档元素”。括号中的内容不是您要返回的内容,而是您应用于搜索的条件。
我没有 HTML Agility 包,但如果您尝试查询以“NSE:”作为文本的 div,第二个查询的 XPath 应该是“//div”,那么您需要过滤使用 LINQ。
就像是
var nodes =
doc.DocumentNode.SelectNodes("//div[text()]").Where(a => a.InnerText.IndexOf("NSE:") > -1);
因此,用英语来说,“将所有立即包含文本的 div 元素返回到 LINQ,然后检查内部文本值是否包含 NSE:”。
再说一次,我不确定语法是否完美,但这就是想法。
XPath“//div[@NSE:]”将返回所有具有名为 NSE: 的属性的 div,无论如何,这都是非法的,因为属性名称中不允许使用“:”。您正在寻找元素的文本,而不是其属性之一。
希望有帮助。
注意:如果您的嵌套 div 都包含文本,如下所示<div>NSE: some text<div>NSE: more text</div></div>
你会得到重复的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)