解析 HTML 片段
在 C# 中解析 HTML 片段的最佳方法是什么?
对于上下文,我继承了一个使用大量复合控件的应用程序,这很好,但大量控件是使用一长串文字控件呈现的,这相当可怕。 我正在尝试将应用程序放入单元测试中,并且我希望对这些控件进行测试,以查明它们是否生成格式良好的 HTML,并在理想的解决方案中验证该 HTML。
What's the best way to parse fragments of HTML in C#?
For context, I've inherited an application that uses a great deal of composite controls, which is fine, but a good deal of the controls are rendered using a long sequence of literal controls, which is fairly terrifying. I'm trying to get the application into unit tests, and I want to get these controls under tests that will find out if they're generating well formed HTML, and in a dream solution, validate that HTML.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
查看 HTMLAgility 包。 它与 .NET XmlDocument 类非常兼容,但它对不干净/有效的 XHTML 的 HTML 更加宽容。
Have a look at the HTMLAgility pack. It's very compatible with the .NET XmlDocument class, but it much more forgiving about HTML that's not clean/valid XHTML.
如果 HTML 符合 XHTML,则可以使用内置的 System.Xml 命名空间。
If the HTML is XHTML compliant, you can use the built in System.Xml namespace.
我使用 SGMLReader 从 HTML 生成有效的 Xml 文档,然后解析所需内容使用 XPath 或使用 XSLT 转换为其他格式。 。
I've used an SGMLReader to produce a valid Xml document from HTML and then parse what is required using XPath or to another format using XSLT. .
您还可以查看 HTML Tidy 进行 HTML 解析/清理。 我不认为他们有特定的 .NET 库,但您也许可以通过命令行或 IKVM java 库运行二进制文件。
You can also look into HTML Tidy for HTML parsing/cleanup. I don't think they have specific .NET libraries, but you might be able to run the binary via command-line, or IKVM the java libraries.