2010-07-02 69 views
0

使用预浸比赛挑预匹配的替代HTML标签

 
&lttable align='center' id='tbl_currency'> &lttr> &ltspan class=bld&gt631.0075 USD</span> 

正是我要挑这个数字和货币631.0075美元

这个数字和货币是动态的,

是否有可能,

+1

您可能想要修复上面的字符串。现在的方式是,它不是HTML,即使使用尖括号,HTML也是无效的,因为tr可能不包含span元素 – Gordon 2010-07-02 13:41:08

+1

唉,它看起来像HTML,这对于大多数Web开发人员来说已经足够了。 =) – Jens 2010-07-02 13:46:26

回答

0

使用正则表达式从HTML源文件中提取数据在stackoverflow处被皱起眉头。请考虑使用html解析器来完成此任务(例如SimpleHTMLDom)。

如果你想这样做一次,快速,非常脏,也许你可以用一些逃脱像

"<span class=bld>([^<]*)</span>" 

这是假设所有的,只有所有的货币值,您有兴趣包含在span标签,bld类,没有其他属性。

+1

** Native ** [DOM](http://de3.php.net/manual/en/domdocument.loadhtml.php)FTW! – Gordon 2010-07-02 13:27:09

1

切勿使用正则表达式,总是使用分析器:

$htmlfragment = "<table align='center' id='tbl_currency'> <tr> <td><span class=bld>631.0075 USD</span></td></tr></table>"; 

$domdoc = new DomDocument(); 
$domdoc->loadHTML($htmlfragment); 

$xpath = new DOMXPath($domdoc); 
$result = $xpath->query("//table[@id='tbl_currency']//span[@class='bld']"); 

if ($result->length > 0) { 
    $currency_span = $result->item(0); 
    print $currency_span->nodeValue; 
} else { 
    print "nothing found"; 
} 

打印

631.0075 USD 

裹在一个功能,你是好去。

如果您以前从未使用过XPath,则可能需要浏览an XPath tutorial