Отображение XML на странице asp - PullRequest
2 голосов
/ 10 ноября 2011

Я использую Get Clicky для своей веб-аналитики, и есть API для создания пользовательских отчетов.

Вывод запроса отправляется обратно в XML CSV JSON или PHP.

Myсайт использует ASP, и я хотел бы знать, запрашиваю ли я вывод результатов на мою страницу в виде XML, как я могу (могу ли я) отобразить его.

Это пример ответа от Get ClickyAPI.

<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 голосов
/ 10 ноября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...