我使用Get Clicky进行网站分析,并且有一个用于生成自定义报告的API。
请求的输出以XML CSV JSON或PHP发回。
我的网站使用ASP,我想知道我是否要求将输出作为XML发送回我的页面,我该怎样(可以)显示它。
这是Get Clicky API的响应示例。
<response status="ok">
<type type="visitors">
<date date="2011-11-10">
<item>
<value>54</value>
</item>
</date>
</type>
<type type="actions">
<date date="2011-11-10">
<item>
<value>102</value>
</item>
</date>
</type>
<type type="actions-average">
<date date="2011-11-10">
<item>
<value>1.9</value>
</item>
</date>
</type>
<type type="time-average">
<date date="2011-11-10">
<item>
<value>209</value>
</item>
</date>
</type>
<type type="bounce-rate">
<date date="2011-11-10">
<item>
<value>39</value>
</item>
</date>
</type>
</response>
答案 0 :(得分:2)
处理此问题的最佳方法是使用某些XSLT。
我首先假设您已经加载了包含在问题中的XML的MSXML DOM。
以下是获取该代码并生成一些HTML输出的代码: -
Dim xsl : Set xsl = CreateObject("MSXML2.DOMDocument.3.0")
xsl.async = false
xsl.load Server.MapPath("/ClickyResponseRender.xsl")
Response.Write yourLoadedDOM.TransformNode(xsl)
以下是“ClickyResponseRender.xsl”文件的一些基本内容,上述内容可能位于根文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<xsl:template match="/response">
<html>
<body>
<table>
<thead>
<tr>
<th>Type</th>
<th>Date</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<xsl:apply-templates select="type" />
</tbody>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="type">
<tr>
<td>
<xsl:value-of select="@type"/>
</td>
<td>
<xsl:value-of select="date/@date"/>
</td>
<td align="right">
<xsl:value-of select="date/item/value"/>
</td>
</tr>
</xsl:template>
</xsl:stylesheet>
这只会生成一个简单的表,列出每个类型的日期和值。但是我怀疑架构可能稍微复杂一些(例如每种类型的多个日期),因此需要修改XSL以满足需求。