【发布时间】:2013-01-15 22:46:00
【问题描述】:
如何使用 DIHtmlParser 从标签中解析 Name: & Value 文本?我尝试使用 Clever Components 的 TCLHtmlParser 进行此操作,但失败了。第二个问题是 DIHtmlParser 是否可以解析单个标签,例如遍历其子标签。对于这样一个简单的问题,这简直就是一场噩梦。
<div class="tvRow tvFirst hasLabel tvFirst" title="example1">
<label class="tvLabel">Name:</label>
<span class="tvValue">Value</span>
<div class="clear"></div></div>
<div class="tvRow tvFirst hasLabel tvFirst" title="example2">
<label class="tvLabel">Name:</label>
<span class="tvValue">Value</span>
<div class="clear"></div></div>
【问题讨论】:
-
欢迎来到 StackOverflow。 AFAIK 没有将 HTML 转换为 JSON 的标准方法。如果您期望得到有用的答案,请编辑您的问题以使其更准确,并提供一些示例来说明您要完成的工作,因为在当前状态下,您的问题过于宽泛,需要结束。
-
在我看来,一旦你能够解析一个 XHTML 文档,这样它就可以无损地转换为 JSON 文档,你实际上并没有 不再需要 JSON。只需使用 XHTML 解释器直接生成的任何结构。那时,您不需要 HTML-to-JSON 转换器;您只需要一个可以让您以编程方式访问文档的 HTML 库。
-
抱歉打破了你的气泡,但是如果你要从HTML转换成JSON,你必须先解析HTML。只有转换完成后才能开始解析 JSON。因此,将 HTML 转为 JSON 再解析 JSON 的速度总是会比自己解析 HTML 的速度慢。
-
@t0xic 使用 HTML 解析器。正则表达式不能用于解析 HTML。甚至 Jon Skeet 也无法使用正则表达式等解析 HTML。stackoverflow.com/questions/1732348/…
-
@t0xic,提取标签本身是困难的部分:一旦获得标签,您就可以轻松提取属性。但是不要自欺欺人,你真的不能用 RegEx 解析 HTML:你很难猜测你看到的标签是否在评论中,或者它可能是无效的,因为它永远不会关闭。这就是为什么我说它取决于输入。如果您想在特定时间从特定网站抓取特定信息,您可以使用 RegEx。如果它变得更复杂,那么您将需要您的解析器。
标签: html delphi delphi-xe2