我需要在PHP脚本中将一些表值作为String。
HTML-File看起来像:
<!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标签和值:
来自:
我尝试了这个(第一个值“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;
使用这些行我在shell上得到以下php错误:
PHP Parse error: syntax error, unexpected T_AS in /home/phpscripts/bin/drinkstatus/php/drinkstatus.php on line 44
有没有人提供一些提示来获取xml值和类名?
答案 0 :(得分:0)
我假设错误,第44行,指向这一行:
$drinkxml->getElementsByTagNameNs('info_id_352', '*') as $tr ;
。
你不能以这种方式使用“as”。如果要创建FOR EACH循环,则需要执行此操作。但除此之外,nadda。
请尝试创建变量,方法是将上面的行替换为下面的行:
$tr = $drinkxml->getElementsByTagNameNs('info_id_352', '*');
答案 1 :(得分:0)
$drinkxml->getElementsByTagNameNs('info_id_352', '*') as $tr ;
是语法错误,因为'as'不是foreach条件之外的关键字。尝试分配tr:
$tr = $drinkxml->getElementsByTagNameNs('info_id_352', '*');
GetElementsByTagNameNs返回一个节点列表对象,因此应该适用于下一个方法调用。
http://php.net/manual/en/domelement.getelementsbytagnamens.php