Кастомизация
22
Мар
0

Веб-ресурсы и XML+XSL преобразование

Рассмотрим, как использовать XSL преобразование в сочетании с Веб-ресурсами в CRM 2011. Имеется статичный XML-документ, который необходимо вывести в Панели мониторинга. XML-документ использует таблицу стилей XSL, которая используется для форматирования XML данных. Также имеется HTML Веб-ресурс, который использует Веб-ресурсы XML и XSL для вывода информации.

  • XML-документ имеет следующую структуру:
    <?xml version="1.0"?>
    <FLIGHTLIST>
      <FLIGHT>
        <FROM>Москва</FROM>
        <TO>Воронеж</TO>
        <DATE>10.03.2009</DATE>
        <TIME>18.50</TIME>
        <PRICE>6200.00</PRICE>
        <AIRPLANE>A320</AIRPLANE>
      </FLIGHT>
      <FLIGHT>
        <FROM>Москва</FROM>
        <TO>Нижний Новгород</TO>
        <DATE>19.03.2009</DATE>
        <TIME>19.35</TIME>
        <PRICE>5150.00</PRICE>
        <AIRPLANE>Boing 747</AIRPLANE>
      </FLIGHT>
      <FLIGHT>
        <FROM>Санкт-Петербург </FROM>
        <TO>Минск</TO>
        <DATE>25.02.2009</DATE>
        <TIME>11:10</TIME>
        <PRICE>4500.00</PRICE>
        <AIRPLANE>Boing 787</AIRPLANE>
      </FLIGHT>
    </FLIGHTLIST>
    

    Тут представлен простой список рейсов в XML-формате. Загрузите его в CRM в качестве XML Веб-ресурса с именем flighlist.xml;

  • XSL документ имеет следующий вид:
    <?xml version="1.0"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
      <xsl:template match="/">
        <html>
          <style type="text/css">
            * { margin: 0; font: 10pt serif }
            table {
              border-width: 0 0 1px 1px;
              border-spacing: 0;
              border-collapse: collapse;
              border-style: solid;
              width: 100%
            }
            td, th {
              padding: 3px;
              border-width: 1px 1px 0 0;
              border-style: solid
            }
            th {
              background-color: #E6E6FA;
              font-weight: bold
            }
          </style>
          <body>
            <table>
              <tr>
                <th>Из</th>
                <th>В</th>
                <th>Дата</th>
                <th>Время</th>
                <th>Цена</th>
                <th>Самолет</th>
              </tr>
              <xsl:for-each select="FLIGHTLIST/FLIGHT">
                <tr>
                  <td><xsl:value-of select="FROM"/></td>
                  <td><xsl:value-of select="TO"/></td>
                  <td><xsl:value-of select="DATE"/></td>
                  <td><xsl:value-of select="TIME"/></td>
                  <td><xsl:value-of select="PRICE"/></td>
                  <td><xsl:value-of select="AIRPLANE"/></td>
                </tr>
              </xsl:for-each>
            </table>
          </body>
        </html>
      </xsl:template>
    </xsl:stylesheet>
    

    Здесь XSL форматирует XML-документ в таблицу со статичными заголовками и динамичным контентом (взятым из XML-документа);

  • Наконец нам нужно взять XSL и XML и включить их в документ HTML. Создайте такой HTML Веб-ресурс:
    <html>
    <head>
        <script type="text/javascript">
            function getXML() {
                // Загружаем XML Веб-ресурс
                var xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.load("/WebResources/new_flighlist.xml");
                // Загружаем XSL Веб-ресурс
                var xsl = new ActiveXObject("Microsoft.XMLDOM");
                xsl.async = false;
                xsl.load("/WebResources/new_stylesheet.xls");
                // Генерируем HTML-контент на основе XML данных и XSL преобразования.
                document.write(xml.transformNode(xsl));
            }
        </script> 
    </head>
    <body onload="getXML();"> 
    </body>
    </html>
    

    Тут мы видим пустую веб-страницу и JS-код, который подтягивает XML и XSL Веб-ресурсы и генерирует из них контент для веб-страницы;

  • Добавьте созданный HTML Веб-ресурс на Панель мониторинга.



Комментарии (0)

*

code