我使用Get Clicky进行web分析,并且有一个用于生成自定义报告的API。
请求的输出以XML、CSV、JSON或PHP格式传回。
我的网站使用ASP,我想知道如果我请求将输出作为XML发送回我的页面,我如何(可以)显示它。
这是一个来自Get Clicky的响应示例。
<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>发布于 2011-11-10 21:09:08
处理这个问题的最好方法是使用一些XSLT。
我首先假设您已经加载了一个MSXML DOM,其中包含您在问题中包含的XML。
下面是获取并生成一些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以满足需要。
https://stackoverflow.com/questions/8079313
复制相似问题