如何通过PHP将这些HTML / XML-Tags作为String获取?

时间:2013-11-25 00:32:43

标签: php html xml

我需要在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标签和值:

来自:

  • a-href-link的值(在此示例中为值“Icetea”)
  • 第二个字段的xml标记(在此示例中为“enough_available”)
  • xml-tag和第三个字段的值(此处:“drink-status drink-enoughavailable”和“Available”

我尝试了这个(第一个值“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值和类名?

2 个答案:

答案 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