【发布时间】:2012-12-21 19:51:57
【问题描述】:
我在 html 页面上有一个独特的项目。我已经能够解析大部分项目,因为它们没有使用组合处理来解析一个项目。
我有一个棘手的项目要解析:
- 它是一个列表项,在 DIV 内,是唯一的 (ld_sec_col)
- UL 类不是唯一的 (ld_details_list)
- 它不是一个特定的列表项编号(例如,不是第 3 或第 4 个)总是在变化
- 它是在唯一文本之后找到的
- 我的问题是结合用于获取它的技术,没有错误,我脑死了。
Here is the snippet:
#####
<div class="ld_sec_col">
<ul class="ld_details_list">
<li><span class="ld_lbl">Exterior:</span> Brick</li>
<li><span class="ld_lbl">Living style:</span> Bungalow</li>
<li><span class="ld_lbl">Property type:</span> Detached</li>
<li><span class="ld_lbl">Sewer system:</span> Sewers</li> </ul>
</div>
### End Snippet ###
所以在这里我试图找到唯一的文本,(属性类型:)并抓住紧随其后的文本:
我显然在滥用 FIND。我被简化为反复试验。但我想在圣诞节前完成这个脚本。这是最后一项......
### START PHP CODE ###
$tempproptype = trim($entry->find('.ld_sec_col', 0)->plaintext);
if(preg_match('/^Property type: (.*),/', $tempproptype, $matches))
$propertytype = $matches[1];
### ENDPHP CODE ###
【问题讨论】:
-
我认为你的正则表达式中有一个额外的空格和一个逗号,在那里找不到,不应该是
/^Property type:(.*)/吗?另请注意,结果可能还包含 html 标签,但请尝试一下 -
现在是 2012 年。使用 XML 解析器。
-
您已经在使用某种 HTML 解析器,因此也不要再使用正则表达式进行解析。继续使用它来处理 。你用来解析 HTML 的包是什么?
标签: php html-parsing