Отображение XML на странице asp


Я использую 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>
1   2   2011-11-10 16:11:46

1 ответ:

Лучший способ справиться с этим-с помощью некоторого 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 необходимо будет изменить в соответствии с потребностями.