繁体   English   中英

从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);

echo'image-> image“>'; //这不显示

 endforeach;?>

我的代码输出如下图所示。 如何显示图像编号1 public 1 => string'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());
    }
}

谢谢Guy我找到了解决问题的方法。 看看后面的问题,似乎我没有以正确的方式把它放在我想要的是显示该部分内的图像。 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>&pound; <?php echo $property->price;?> </h4>
    </li>
        <?php  endforeach; ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM