2013-11-25 53 views
-1

我需要一些表值作爲字符串在我的PHP腳本。如何通過PHP將這些HTML/XML標籤作爲字符串獲取?

的HTML的文件看起來像:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> 

... 

<body> 

.... 

<div class="page"> 
<div class="content"> 
<div class="left"> 
<table class="info_table"> 
<tbody> 
<tr id="info_id_352"> 
     <td class="info_iddata"><a href="Ice-Tea">Icetea</a></td> 
     <td style="width: 32px;"><div class="enough_available"></div></td> 
     <td class="drink-status drink-enoughavailable">Available</td> 
</tr> 
</tbody> 
</table> 

... 

</div> 
</div> 
</div> 
</body> 
</html> 

在這裏,我需要以下XML標籤和值:

來源:在A href - 指向的

  • 值(在本示例中,值「Icetea」)
  • 第二個字段的xml標籤(在本例中爲「enough_available」)
  • 的XML標籤和第三場(這裏的價值:「酒後狀態酒後enoughavailable」和「可用」

我想這(第一個值「IceTea)採用下面幾行:

$pagestring = file_get_contents("./index.html"); 
$drinkxml = new DOMDocument(); 
$drinkxml->loadHTML($pagestring); 
$drinkxml->getElementsByTagNameNs('info_id_352', '*') as $tr ; 
echo current($tr->getElementsByTagName('a'))->nodeValue; 

有了這些行,我得到了下面的PHP錯誤的外殼:

PHP Parse error: syntax error, unexpected T_AS in /home/phpscripts/bin/drinkstatus/php/drinkstatus.php on line 44 

有沒有人一些提示,以獲取XML值和類的名稱?

+4

'$ drinkxml-> getElementsByTagNameNs( 'info_id_352', '*')爲$ TR;'---這是什麼意思?你在哪裏見過這樣的「as」運營商使用情況? – zerkms

+0

嗨 - 我試圖找到一些答案,並發現這個網頁:http://forums.devshed.com/php-development-5/catchable-fatal-error-object-of-class-domnodelist-could-not-be- 940500.html我發現,結果不是一個字符串,而是一個DOMNodeList,所以我嘗試使用此頁面上的代碼示例將其作爲字符串獲取 - 經過多次編輯並嘗試獲取這些代碼行...答案是我不確定... – anewphpguy

回答

0

我假設錯誤行44指向此行:
$drinkxml->getElementsByTagNameNs('info_id_352', '*') as $tr ;

你不能以這種方式使用「as」。如果您正在創建一個FOR EACH循環,您會希望這樣做。但除此之外,納達。

嘗試通過與下面的一個替換上面的行創建變量,而不是...:

$tr = $drinkxml->getElementsByTagNameNs('info_id_352', '*'); 
+0

我假設錯誤,第44行,指向這一行:---是的,你是對的。在使用你的行(現在行45)後,我得到了這個錯誤(回聲線是第46行):PHP致命錯誤:調用未定義的方法DOMNodeList :: getElementByTagName()在/ home/phpscripts/bin/drinktatus/php/drinkstatus2。 php 46行 – anewphpguy

+0

你替換了我的新行,對不對?替換,不要添加。 –

+0

當然 - 我評論舊線(#),並用你的線。現在我有我的第一個問題的前三個PHP行,你的線和回聲線查看 anewphpguy

0
$drinkxml->getElementsByTagNameNs('info_id_352', '*') as $tr ; 

語法錯誤,因爲「作爲」不是一個foreach之外的關鍵字條件。嘗試分配TR:

$tr = $drinkxml->getElementsByTagNameNs('info_id_352', '*'); 

GetElementsByTagNameNs返回一個節點列表對象,所以應該在接下來的方法調用工作。

http://php.net/manual/en/domelement.getelementsbytagnamens.php

+0

這裏有回聲嗎? :p如果你閱讀我的答案,你會看到我說的完全一樣的東西 - 這帶來了另一個問題... –

+0

對不起,邁克,我只是在我的手機在這裏,並沒有看到你的答案。 – JAL

相關問題