首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示API返回的URL中的图像

显示API返回的URL中的图像
EN

Stack Overflow用户
提问于 2009-07-10 07:14:56
回答 3查看 372关注 0票数 0

我正在进行一个API调用,它应该返回如下内容,

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?> 
<Chart:chart xmlns:Chart="http://www.zillow.com/vstatic/3/static/xsd/Chart.xsd">
    <request>
        <zpid>48749425</zpid> 
        <unit-type>percent</unit-type> 
        <width>300</width> 
        <height>150</height> 
    </request>
    <message>
        <text>Request successfully processed</text> 
        <code>0</code> 
    </message>
    <response>
        <url>http://www.zillow.com/app?chartDuration=1year&chartType=partner&height=150&      page=webservice%2FGetChart&service=chart&showPercent=true&width=300&zpid=48749425</url> 
    </response>
</Chart:chart>

我需要的是显示返回URL处的图表图像,但是我该如何做呢?!?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2009-07-10 07:26:13

您可以使用simple_xml

代码语言:javascript
复制
$x = simplxml_load_string($xml);
echo '<img src="' . htmlspecialchars($x->response->url) . '">';
票数 2
EN

Stack Overflow用户

发布于 2009-07-10 07:23:26

给定变量$xml中的XML数据,您可以解析它并使用XMLDOM函数输出<img>标记:

代码语言:javascript
复制
$doc = new DOMDocument();
$doc->loadXML($xml);


$nodes = $doc->getElementsByTagName("url");
if ($nodes->length>0)
{
    $node=$nodes->item(0);
    $url=htmlentities($node->nodeValue);

    echo "<img src=\"$url\">";
}

您还可以使用XPath

代码语言:javascript
复制
$doc = new DOMDocument();
$doc->loadXML($xml);
$xpath = new DOMXPath($doc);

$nodes = $xpath->evaluate('Chart/response/url');
if ($nodes->length>0)
{
    $node=$nodes->item(0);
    $url=htmlentities($node->nodeValue);

    echo "<img src=\"$url\">";
}

还有simplexml也有

代码语言:javascript
复制
$doc = simplexml_load_string($xml);
$url = htmlentities($doc->response->url);
echo "<img src=\"$url\">";

请注意,您发布的XML是无效的- &中的字符必须为&amp;,以便这些方法中的任何一个都能正常工作。但这至少说明了如何“正确”地使用XML。

因此,一种更简单的方法是使用正则表达式删除url。

代码语言:javascript
复制
if (preg_match('{<url>(.*?)</url>}', $xml, $matches))
{
     $url=htmlentities($matches[1]);
     echo "<img src=\"$url\">";
} 
票数 0
EN

Stack Overflow用户

发布于 2009-07-10 18:55:17

谢谢你们让我走上正确的道路。我不确定为什么我不能让它与load_string函数一起工作。

这就是我使用的方法,它起作用了,你知道为什么吗?

代码语言:javascript
复制
<?php
$xml = 'http://www.zillow.com/webservice/GetChart.htm?zws-id=******&unit-type=percent&
zpid='.$title->zpid.'&width=300&height=150';
$chart = simplexml_load_file($xml);
echo '<img src="' .$x->chart->url . '">';
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1108134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档