php - 从 xml 导入数据

标签 php xml simplexml

我正在尝试使用 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 'images->image">';//这个不显示

 endforeach;?>

我的代码输出如下图。我如何显示图像编号 1 公共(public) 1 => 字符串 ' http://media2.jupix.co.uk/v3/clients/657/properties/1356/IMG_1356_9_large.jpg ' (长度=77)

enter image description here

最佳答案

我认为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());
    }
}

关于php - 从 xml 导入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33329593/

相关文章:

php - mysql_num_rows() 有什么问题?

php - 如何使用按键作为指示器?

php - 在 PHP 中创建 XML 文档

php - SimpleXmlElement PCDATA 无效的字符值 11

php - SimpleXML 问题,将项目列表包装在一个 <tag> 中

html - 检查 HTML 表单复选框等是否已 POST 设置的正确和最安全的方法是什么?

错误处理程序中抛出的 PHP 异常未被异常处理程序捕获

java - 如何在解码时捕获多次出现的 xml 到 pojo?

C# 读取格式不正确的 XML 文件

php - 从 curl POST 响应解析 XML