从 xml 导入数据
Import data from xml
我正在尝试使用 simple_xml 从 XML 文件中获取数据,到目前为止我可以获取除图像之外的所有数据。如何调用单个图像名称?
<?php
$ur="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($ur);
foreach ($xml->property as $property):
var_dump($property->images->image);
回声'images->image">'; // 这不是显示
endforeach;?>
我的代码输出如下图。我如何显示图像编号 1
public 1 => 字符串'http://media2.jupix.co.uk/v3/clients/657/properties/1356/IMG_1356_9_large.jpg'(长度=77)
我认为SimpleXMLElement::xpath可以满足您的需求:
你可以试一试:
<?php
$ur="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($ur);
$image = $xml->xpath('//property/images/image[@modified="2014-07-23 14:22:05"]')[1]->__toString();
var_dump($image);
或者您可以遍历所有图像并检查您要查找的名称:
$images = $xml->xpath('//property/images/image');
foreach ($images as $image) {
$url = $image->__toString();
if (false !== strpos($url, "_9_large.jpg")) {
var_dump($url);
}
}
如果你想获取每个 /images 部分的第二张图片,那么你可以这样做:
$images = $xml->xpath('//property/images');
foreach ($images as $image) {
if (isset($image->children()[1])) {
var_dump($image->children()[1]->__toString());
}
}
谢谢盖伊,我找到了解决问题的办法。
看后面的问题好像我没有把它放在正确的方式
我想要的只是在该部分中显示图像。 Xpath 不是必需的,但我从中学到了东西。这是我的解决方案,如果您可以改进它,非常欢迎。
$url ="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($url);
foreach ($xml->property as $property):
?>
<li>
<h3> <?php echo $property->addressStreet;?> </h3>
<?php
$imgCount = count($property->images->image);
for ($i=0; $i < $imgCount; $i++) { ?>
<img src="<?php echo $property->images->image[$i];?>">
<?php } ?>
<p><?php echo limit_text($property->fullDescription,30);?></p>
<h4>£ <?php echo $property->price;?> </h4>
</li>
<?php endforeach; ?>
我正在尝试使用 simple_xml 从 XML 文件中获取数据,到目前为止我可以获取除图像之外的所有数据。如何调用单个图像名称?
<?php
$ur="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($ur);
foreach ($xml->property as $property):
var_dump($property->images->image);
回声'images->image">'; // 这不是显示
endforeach;?>
我的代码输出如下图。我如何显示图像编号 1 public 1 => 字符串'http://media2.jupix.co.uk/v3/clients/657/properties/1356/IMG_1356_9_large.jpg'(长度=77)
我认为SimpleXMLElement::xpath可以满足您的需求:
你可以试一试:
<?php
$ur="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($ur);
$image = $xml->xpath('//property/images/image[@modified="2014-07-23 14:22:05"]')[1]->__toString();
var_dump($image);
或者您可以遍历所有图像并检查您要查找的名称:
$images = $xml->xpath('//property/images/image');
foreach ($images as $image) {
$url = $image->__toString();
if (false !== strpos($url, "_9_large.jpg")) {
var_dump($url);
}
}
如果你想获取每个 /images 部分的第二张图片,那么你可以这样做:
$images = $xml->xpath('//property/images');
foreach ($images as $image) {
if (isset($image->children()[1])) {
var_dump($image->children()[1]->__toString());
}
}
谢谢盖伊,我找到了解决问题的办法。 看后面的问题好像我没有把它放在正确的方式 我想要的只是在该部分中显示图像。 Xpath 不是必需的,但我从中学到了东西。这是我的解决方案,如果您可以改进它,非常欢迎。
$url ="http://services2.jupix.co.uk/api/get_properties.php?clientID=35871cc1b6d9ec6237aaaf94aa0e0836&passphrase=cvYG9f";
$xml = simplexml_load_file($url);
foreach ($xml->property as $property):
?>
<li>
<h3> <?php echo $property->addressStreet;?> </h3>
<?php
$imgCount = count($property->images->image);
for ($i=0; $i < $imgCount; $i++) { ?>
<img src="<?php echo $property->images->image[$i];?>">
<?php } ?>
<p><?php echo limit_text($property->fullDescription,30);?></p>
<h4>£ <?php echo $property->price;?> </h4>
</li>
<?php endforeach; ?>