2012-07-13 112 views
0

我通过CURL请求获取数据并解析HTML时我有一些跨度的属性未被整齐地分析。HTML标记范围内的条属性

的片段的HTML代码

<div class="ftlt" style="width:250px;"> 
    <div class="tdiv"><span class="prop_price_img"></span><span class="property_price">PROPERTY_PRICE</span></div> 
    <p class="adPrice">AREA</p> 
    <h4> 
     <p style="float:left;width:251px;font-family:Arial, Helvetica, sans-serif;font-size:13px;padding:2px 10px 10px 0px;"><a href="some link" title="title">TITLE</a>, 
        <span style="color:#666;"> CITY_NAME.</span> 

       <a title="title, Sale" style="color:#3266CC;font-size:12px;text-decoration:underline;">View on map</a></p> 
    </h4> 
    <p style="font-weight:bold;color:#666;"> 
      Premium 
      </p> 
    <div class="clr"></div> 
    </div> 

我必须整齐地访问CITY_NAME元素。 我已经能够通过HTML DOM获取节点作为

$spans = $html->find(div.ftlt span); 
$city_value=strip_tags($spans[2]); 

$city_value是越来越演变。 我试过removeAttribute method.Maybe我没有做好。

如果正则表达式可以应用,我想知道如何?

回答

0
$spans = $html->find(div.ftlt span); 
$city_value=$spans[2]->nodeValue; 

为什么不使用nodeValue

+0

我试过了,它给出的结果是CITY_NAME。 – user1425322 2012-07-13 10:06:24

+0

您是否检查过传入HTML的编码? – rsplak 2012-07-13 10:07:57

+0

你可以尝试utf8_decode()你的curl_exec ...或者,如果编码不是utf8,你可以使用iconv来改变编码 – rsplak 2012-07-13 10:09:28