我已经完成了以下代码从URL中提取图像,但是我收到了XML解析错误。如何显示包含所有XML输出的图像?
$error = true;
$msg = 'profile';
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
if($error)
{
echo "<response>";
echo "<success>S</success>";
echo "<message>".trim($msg)."</message>";
echo "<userid>".trim($userid)."</userid>";
echo "<username>".trim($username)."</username>";
echo "<firstname>".trim($firstname)."</firstname>";
echo "<lastname>".trim($lastname)."</lastname>";
echo "<email>".trim($email)."</email>";
echo "<follower>".trim($follower)."</follower>";
//echo "<photo><img src=photo/".trim($photo) ." height='200' width='200'></photo>";
echo "</response>";
}
答案 0 :(得分:3)
对于这样一个简单的XML块,您可以使用PHP's SimpleXML API生成<response>
XML块。对于XML文档本身和没有属性的直接元素,它就像:
$response = new SimpleXMLElement('<response/>');
$response->success = 5;
$response->message = trim($msg);
对于带有img子元素和属性的photo元素,它就像:
$img = $response->addChild('photo')->addChild('img');
$img["src"] = "photo/" . trim($photo);
$img["height"] = 200;
$img["width"] = 200;
当您使用“SimpleXML基本示例”进行谷歌浏览时,您会发现与此类似的PHP示例以及PHP手册中的更多信息。
正如您所看到的,您不需要关心XML编码,SimpleXML API会为您执行此操作。
然后输出类似于直接:
header('Content-type: text/xml');
echo $response->asXML();
我希望这很有帮助,示例输出是:
<?xml version="1.0"?>
<response><success>5</success><message>profile</message><photo><img src="photo/nice-day.jpg" height="200" width="200"/></photo></response>
美化:
<?xml version="1.0"?>
<response>
<success>5</success>
<message>profile</message>
<photo>
<img src="photo/nice-day.jpg" height="200" width="200"/>
</photo>
</response>
答案 1 :(得分:1)
XML无法使用&lt; img src = ...&gt;标记以显示图像。这是一个HTML标记。您可以拥有应用程序可以读取然后呈现的图像的URL,但这是特定于应用程序的(即浏览器,移动电话或桌面应用程序) - 这是XML的要点,它是通用的,而不是绑定到单一申请。
答案 2 :(得分:0)
对src
值使用单引号并关闭img
代码
$error=true;
$msg='profile';
header('Content-type: text/xml');
echo '<?xml version="1.0" encoding="UTF-8"?>';
if($error)
{
echo "<response>";
echo "<success>S</success>";
echo "<message>".trim($msg)."</message>";
echo "<userid>".trim($userid)."</userid>";
echo "<username>".trim($username)."</username>";
echo "<firstname>".trim($firstname)."</firstname>";
echo "<lastname>".trim($lastname)."</lastname>";
echo "<email>".trim($email)."</email>";
echo "<follower>".trim($follower)."</follower>";
echo "<photo><img src='photo/".trim($photo)."' height='200' width='200'></img></photo>";
echo "</response>";
}