- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 HTML Agility Pack 来验证我的 html。下面是我正在使用的,
public class MarkupErrors
{
public string ErrorCode { get; set; }
public string ErrorReason { get; set; }
}
public static List<MarkupErrors> IsMarkupValid(string html)
{
var document = new HtmlAgilityPack.HtmlDocument();
document.OptionFixNestedTags = true;
document.LoadHtml(html);
var parserErrors = new List<MarkupErrors>();
foreach(var error in document.ParseErrors)
{
parserErrors.Add(new MarkupErrors
{
ErrorCode = error.Code.ToString(),
ErrorReason = error.Reason
});
}
return parserErrors;
}
假设我的输入类似于下图所示:
<h1>Test</h1>
Hello World</h2>
<h3>Missing close h3 tag
所以我当前的函数返回以下错误列表
- Start tag <h2> was not found
- End tag </h3> was not found
这很好...
我的问题是我希望整个 html 有效,即使用适当的 <head>
和 <body>
标记,因为此 html 稍后可用于预览,请下载为 .html 文件。
所以我想知道我是否可以使用 HTML Agility Pack 检查这个?
任何想法或其他选项将不胜感激。谢谢
最佳答案
您可以检查 HTML 元素下是否有 HEAD 元素或 BODY 元素,例如:
bool hasHead = doc.DocumentNode.SelectSingleNode("html/head") != null;
bool hasBody = doc.DocumentNode.SelectSingleNode("html/body") != null;
如果没有 HTML 元素,或者如果 HTML 元素下没有 BODY 元素,这些将失败。
请注意,我不使用这种 XPATH 表达式 "//head"
,因为即使 head 不在 HTML 元素的正下方,它也会给出结果。
关于c# - 如何使用 Html Agility Pack 进行 HTML 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16645257/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 3年前关闭。 Improve thi
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 2年前关闭。
我正在尝试更换我所有的 h1带有 h2 的标签标签,我正在使用 HtmlAgility 包。 我这样做了: var headers = doc.DocumentNode.SelectNodes("//
我想获取某个类中的所有链接。 HTML 的一个例子是 ES M3 E-mini S&P500 June 2013
以下测试代码: [Test] public void PossibleHtmlAgilityPackBug() { const string html = @""; var doc =
我正在使用 Visual Studio Team Services(以前称为 Team Foundation Service,而不是 Team Foundation Server),并且需要将团队项目
给定一个 HTML 文档,我想识别文档中的所有数字并在数字周围添加自定义标签。现在,我使用以下内容: HtmlNodeCollection bodyNode = htmlDoc.DocumentNod
我正在尝试让 Html Agility Pack 在我的情况下工作。我需要检测现有 HTML 页面中的所有脚本元素并删除它们,将更改保存到另一个文件。在这里,bodyNode 返回正确数量的脚本标签,
我正在尝试从 HTML 中删除不必要的内容。具体来说,我想删除评论。我找到了一个很好的解决方案( Grabbing meta-tags and comments using HTML Agility
The next code extracts from the link下一个代码从链接中提取 https://www.ncbi.nlm.nih.gov/myncbi/1dAdNxivfiO5
下一个代码从链接中提取。一个有引文列表的网站。我的最终目标是提取该信息并将其放入json对象列表中,这样每个对象都可以拥有引用信息。。虽然此代码提取每个引文,但目前它使用以下命令提取第一个PMID值:
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 5 年前。 Improve
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
Closed. This question is opinion-based 。它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文来回答。
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想要改善这个问题吗?更新问题,以便将其作为on-topi
Closed. This question is opinion-based。它当前不接受答案。 想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 3年前关闭。
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 3年前关闭。 Improve t
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 9年前关闭。 Improve this q
我是一名优秀的程序员,十分优秀!