【问题标题】:parse html in asp.net(c#) [closed]在asp.net(c#)中解析html [关闭]
【发布时间】:2012-08-08 18:44:51
【问题描述】:

这是目前的情况:
我在 asp.net 中编写了一个 html 文档。 该文档有一个表格。我给每个单元格一个带有 ID 的 div。因此,我将有更多选项,我可以稍后更改。
我的问题:
我想在单元格的每个 div 中插入将动态插入的文本或图像,因为应该在 div 中显示的数据来自数据库。为了实现这一点,我需要解析 HTML 文档。因此,我可以通过 c# 在 asp.net 中为每个 div 分配一个特殊的文本或图像。我想过使用 id 来处理特定的 div。由于我没有做任何关于解析的事情,我不知道如何完成这项任务。对于每一个建设性的答案和链接,我都会非常有帮助。
提前致谢。

【问题讨论】:

  • 代码会很有帮助。 :)
  • 在生成动态数据时为什么不将动态数据插入到 HTML 文档中?
  • 既然你说它是动态生成的,如果你正在考虑在客户端(浏览器)中这样做,你可以使用jQuery。它非常简单、快速和方便。您可以使用 $("#YOURCLIENTID") 来获取元素。 jQuery 会自动为您解析所有内容。您可以使用 alert($("#YOURCLIENTID").html()) 查看单元格的内容。您可以使用 $("#YOURCLIENTID").html("my content here"); 更改您的内容
  • 您似乎有一个模板并希望将数据推入,如果您可以在其中包含一些占位符,例如[1]``[2],这对于替换逻辑来说是相关且方便的

标签: c# asp.net html parsing


【解决方案1】:

如果你真的想用c#代码解析html,你应该看看html agility pack

但是,您可以使用jquery 在客户端轻松实现您想要实现的结果。您可以使用 div 的客户端 id 和一些组合来创建 img 标签。

【讨论】:

    【解决方案2】:

    您应该使用 XDocument 和 XDocument.Parse 来解析您的 html!

    如果你不了解 Linq,你必须学习一些新东西。

    【讨论】:

    • XML != HTML。如果 HTML 不是有效的 XML,这可能会失败(<br> 是有效的 HTML,而不是有效的 XML)。
    • 是的。但是如果文档包含<br> 而不是<br />? OP 不是询问 XML 或 XHTML,而是询问 HTML。
    • 那么作者将
      改为
      ,因为你给了他很好的建议! =)
    • 您正在将 您的 想法强加于 OP。 <br><hr><input type=text /> 都是 有效 HTML。 OP 可能无法将其更改为与 XML 兼容。
    【解决方案3】:

    您可以使用HTML Agility Pack 来解析、操作和保存您的 HTML 文档。

    什么是 Html Agility Pack (HAP)?

    这是一个敏捷的 HTML 解析器,它构建一个读/写 DOM 并支持普通的 XPATH 或 XSLT(实际上你不必了解 XPATH 或 XSLT 就可以使用它,不用担心......)。它是一个 .NET 代码库,可让您解析“网络之外”的 HTML 文件。解析器对“真实世界”格式错误的 HTML 非常宽容。对象模型与 System.Xml 的提议非常相似,但用于 HTML 文档(或流)。

    话虽如此,由于您在不同的 div 元素上具有 id 属性,因此您可以通过 Javascript 使用客户端方法(jQuery 库使许多需要的任务变得非常容易)并获得使用 AJAX 从服务器获取所需的数据(文本和图像 URI)。

    【讨论】:

      【解决方案4】:

      如果你容忍 COM 互操作性,你也可以使用 MSHTML 组件。 http://msdn.microsoft.com/en-us/library/bb508516%28v=vs.85%29

      【讨论】:

        猜你喜欢
        • 2013-12-13
        • 2010-10-17
        • 1970-01-01
        • 2016-03-23
        • 2010-09-19
        • 2010-09-29
        • 2011-12-19
        • 1970-01-01
        • 2014-01-10
        相关资源
        最近更新 更多