【发布时间】:2012-03-15 14:46:25
【问题描述】:
我想从 http 模块中页面的 html 输出中找到标签的索引。 我正在使用
HTMLOutput.IndexOf("</head>");
其中 HTMLOutput 是字符串参数,它包含特定页面的整个 html 输出。 使用上述方法,我能够找到结束头标签的索引,但只有当它是唯一的结束头标签时,当页面中有一些 javascript 函数插入一些动态 html 内容并包含一些结束头标签时,就会出现问题例如,在其中,
newWindow.document.writeln('</head>')
如果页面中有一些由第三方工具添加的注释行,其中包含。
所以我无法找到原始标签的索引,有人知道如何解决这个问题吗?可能是一些正则表达式或在这种情况下可以帮助我的东西。
谢谢, 马克
【问题讨论】:
-
您必须为此使用 HTML 解析器,而不是正则表达式。
-
@Qtax 现在我正在使用 HTMLAgility 包,你能建议我如何找到 标签
-
您需要编写 Xpath 以在 Html Agility pack 中查找特定元素。访问此处以了解有关 kossovsky.net/index.php/2009/07/… 的更多信息
-
@Mac,我对 C# HTML 解析器一无所知,因此无法帮助您。我猜你可以使用解析器找到完整的
head元素,获取它在输入字符串中的起始位置,以及它的内容长度,然后使用这些数字来计算</head>的位置(如果解析器不能直接给你)。 -
@Mac:为什么要查找结尾
<head>标签的索引?你想在里面/外面注入一些东西吗?
标签: c# regex string html-parsing html-agility-pack