我正在尝试使用HAP访问带前缀的标签,但以下操作不起作用(它们什么也不返回):

HtmlAgilityPack.HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//*[name() ='sc:xslfile']");
HtmlAgilityPack.HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//*['sc:xslfile']");


有什么想法吗?

编辑:

HTML看起来像这样:
<p>Men's Standings<br /><sc:xslfile runat="server" datasource="/Global/Tables/1_01/9859_" id="WC_9859"></sc:xslfile><br /><br /><br />Women's Standings<br /><sc:xslfile runat="server" datasource="/Global/Tables/1_01/9860_" id="WC_9860"></sc:xslfile></p>


@Pat,我尝试了开始-但还是没有去。

也许是因为标签是空的?

最佳答案

您可能可以使用开始方式选择器。

即:

var nodes = document.DocumentNode.SelectNodes("//*[starts-with(@class, 'cnn_')]");


@class是您要查找的属性。


更新:

如果您仅对数据源和/或ID感兴趣,则可以运行:

//*[@datasource]


要么

//*[contains(@id, 'WC_']


但是,了解您要提取的内容将有助于优化选择器。

10-05 21:30