我有这个PHP函数来获取维基百科的摘要
$function getWikiData()
{
$keyword = $_GET['q'];
//initiate
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://en.wikipedia.org/w/api.php?action=opensearch&search=$keyword&format=xml&limit=1");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, "myCustomBot");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$getData = curl_exec($ch);
curl_close($ch);
}
//this output is sent to the template
$TMPL['getData'] = $getData;
输出是预期的图像,标题,第一段但不是图像只是一个带有损坏图像图标的矩形,带有段落的标题被粘在一起。 我究竟做错了什么?是否需要设计样式如果是这样我将如何设计xml?
答案 0 :(得分:3)
此API会返回一个XML,因此您无法将其用作HTML数据(理论上即使它兼容)。
您需要将XML转换为HTML格式。为此,您可以使用XSLT。
例如:
<xsl:stylesheet version="1.0" xmlns:php="http://php.net/xsl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="utf-8"/>
<xsl:template match="//Image">
Image source : <xsl:value-of select="@source"/>
</xsl:template>
</xsl:stylesheet>
然后,您可以使用XSLTProcessor
和DOMDocument
来处理它。