获取维基百科文章摘要

时间:2014-12-02 13:55:42

标签: php xml

我有这个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?

1 个答案:

答案 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>

然后,您可以使用XSLTProcessorDOMDocument来处理它。