.net - Html Agility Pack 不匹配 <link> 标签

标签 .net html xpath

代码:(使用 HTML Agility Pack)

 Dim moHtmlParser As HtmlDocument = New HtmlDocument           
 moHtmlParser.LoadHtml(htmlString)
           
 Dim maStyles As New List(Of String)
 Dim moStyleNodes As HtmlNodeCollection = moHtmlParser.DocumentNode.SelectNodes("//link")

HTML:

<head runat="server">
<script src="Scripts/JScript1.js" type="text/javascript" ></script>
        
<link href="Stylesheets/StyleSheet1.css" rel="Stylesheet" type="text/css" />

<link href="Stylesheets/StyleSheet2.css" rel="Stylesheet" type="text/css" />

<link href="Stylesheets/StyleSheet3.css" rel="Stylesheet" type="text/css" />    
     

<title>Untitled Page</title>

没有匹配项? moStyleMatches 始终为 Nothing。显示的 Html 来自 Head,物有所值。我可以匹配其中的其他标签(脚本、标题)没问题。

更新:

即使在删除“链接”标签的 ElementsFlag 之后,它也不会拾取标签。

我用这段代码解决了这个问题:

Dim moStyleNodes As HtmlNodeCollection = moHtmlParser.DocumentNode.SelectNodes("//*[@rel]")

然后我在使用节点之前确保“rel”是“stylesheet”。

目前有效,但没有解释为什么它一开始就不起作用。

最佳答案

即使在删除“链接”标签的 ElementsFlag 之后,它也不会拾取标签。

我用这段代码解决了这个问题:

Dim moStyleNodes As HtmlNodeCollection = moHtmlParser.DocumentNode.SelectNodes("//*[@rel]")

然后我在使用节点之前确保“rel”是“stylesheet”。

目前有效,但没有解释为什么它一开始就不起作用。

关于.net - Html Agility Pack 不匹配 <link> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707988/

相关文章:

.net - 您可以为SVN推荐一个好的基于.NET Web的存储库浏览器吗?

.net - 根据 SQL 表时间戳安排 .exe 执行

c# - 标识符应具有正确的后缀 (fxcop)

html - 没有特定 ID 的类的 CSS 选择器

javascript - 意外的 Chrome 自动填充行为 [禁用 Chrome 自动填充]

java - 我可以通过 Java 代码生成 HTML 页面的 XPath 表达式吗?

java - 如何使用 Selenium 中字段集中的图例定位单选按钮

c# - 确定按下的键是 Windows 运行时中的字母数字

xml - XPath运算符:某些子元素包含子字符串

html - 仅 CSS : Apply style only on non-hovered siblings