2010-07-02 70 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