我正在建立一个小型网站,用于从目录中获取值并将其放置在谷歌地图上。
所以基本上它抓住了名字,地址,电话和网址。我试图使用php和xpath来获取每个值并将它们分配给单独的变量,这样我就可以在我的页面中回显它。
<div class="listing">
<div data-company="" itemtype="http://schema.org/LocalBusiness" itemscope="" class="l-container clearfix">
<div class="l-header clearfix">
<h2 class="cypher">
<a itemprop="name" href="/company/profile/574">
The Company
</a>
</h2>
</div>
<div class="l-footer clearfix">
<div class="l-telephone">
<ul>
<li class="last" data-company-item="telephone">
Texas:
<strong>
12345 6789
</strong>
</li>
</ul>
</div>
<ul class="l-link clearfix">
<li>
<a data-company-item="visiturl" href="http://www.mywebsite.com" target="_blank" class="l-link-w clearfix">
Visit
</a>
</li>
</ul>
</div>
</div>
</div>
这是我在php中的xpath代码。
$elements = $xpath->query("//div[@class='listing']//a[@itemprop='name']|//a[@itemprop='address']|//ul/li[@data-company-item='telephone']|//a[@data-company-item='visiturl']");
我遇到的问题是当我遍历值时,我需要将它们分配给变量。
foreach($elements as $element)
{
//$name=
//$address=
//$phone =
//$url=
}
显示将是
Company Name: ABC
Address: Some Address
Telephone: 123456789
Website: yourdomain.com
我尝试了下面的代码
foreach($elements as $element)
{
echo $element->nodeValue(0);
echo "<br>";
}
它显示所有值,但我需要将每个值分配给变量。有人可以告诉我我该怎么做?
答案 0 :(得分:0)
实现这一目标的最简单方法是使用关联数组。
在循环外定义它
$storedElements = array();
然后在你的循环内完成
$storedElements[$element]=$element->nodeValue(0);
应该提供所需的结果。
之后你可以像这样访问它们
foreach($storedElement as $element=>$id)
echo 'id: '.$id.' | element: '.$element."\n";
HTH
学家