我正在编写一个生成网页的脚本,我希望它能够显示当前新闻。我想使用The Guardians API,但我无法弄清楚如何让它工作。以下是The Guardian API http://www.theguardian.com/open-platform/getting-started的链接。我现在的代码是:
#!/bin/bash
news()
{
cat <<- _EOF_
_EOF_
write_page()
{
cat <<- _EOF_
<html>
<head>
</head>
<body>
$(news)
</body>
</html>
_EOF_
}
write_page > testNews.html
我想我需要在cat <<- _EOF_
和_EOF_
中添加一些HTML文字,但我不知道如何让它工作。我很擅长使用API和bash
答案 0 :(得分:1)
您可以使用以下API调用来获取当前新闻:
curl "http://content.guardianapis.com/search?from-date=2013-11-23&to-date=2013-11-24&format=xml"
问题是你会得到XML格式的结果,而你想要HTML格式。如果您安装xsltproc
,可以编写一个简单的转换脚本guardian.xsl
,如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<ol>
<xsl:for-each select="response/results/content">
<li>
<ul>
<li><xsl:value-of select="@web-title"/></li>
<li><xsl:value-of select="@web-url"/></li>
</ul>
</li>
</xsl:for-each>
</ol>
</xsl:template>
</xsl:stylesheet>
然后你的命令会变成:
curl -s "http://content.guardianapis.com/search?from-date=2013-11-23&to-date=2013-11-24&format=xml" | xsltproc guardian.xsl -