Выполнение XML-преобразований во Flex

Я хотел бы иметь возможность запускать преобразование xml с помощью файла xslt в своем проекте AIR. Как лучше всего это сделать?


person Abdullah Jibaly    schedule 16.01.2009    source источник


Ответы (2)


В AIR 1.5 включена версия Webkit с поддержкой XSLT.

Используйте класс XSLTProcessor из JavaScript так же, как в Firefox. (Примечание: есть одна досадная ошибка. Таблицы стилей не могут содержать неразрывные пробелы, будь то буквально или в виде ссылки на символ. Мне сказали, что более поздние версии Webkit исправят эту проблему.)

Ниже приведен полный пример.

Создать файл test.html

<html>
  <head>
    <title>XSLT test</title>
    <script type="text/javascript">
      // <!--
      function test() {

        // Step 1: Parse the stylesheet
        var stylesheet
          = "<xsl:transform xmlns:xsl='http://www.w3.org/1999/XSL/Transform'"
          + "               version='1.0'>"
          + "  <xsl:template match='/'>"
          + "    Hello World from XSLT!"
          + "  </xsl:template>"
          + "</xsl:transform>";
        var stylesheetDocument
          = new DOMParser().parseFromString(stylesheet, "application/xml");

        // Step 2: Parse the source document
        var source = "<dummy/>";
        var sourceDocument
          = new DOMParser().parseFromString(source, "application/xml");

        // Step 3: Perform the XSL transformation
        var xslt = new XSLTProcessor();
        xslt.importStylesheet(stylesheetDocument);
        var newFragment = xslt.transformToFragment(sourceDocument, document);

        // Step 4: Show the result
        document.body.appendChild(newFragment.firstChild);
      }
      // -->
    </script>
  </head>
  <body>
    <input type="submit" onclick="test()">
    Output:
  </body>
</html>

и файл test.xml

<application xmlns="http://ns.adobe.com/air/application/1.0">
  <id>test</id>
  <filename>test</filename>
  <initialWindow>
    <content>test.html</content>
    <visible>true</visible>
  </initialWindow>
</application>

Вы можете попробовать это, используя среду выполнения отладки, например:

adl test.xml

Нажмите на кнопку, и он скажет:

example
(источник: lichteblau. ком)

person David Lichteblau    schedule 24.02.2009

Поддержка XSLT обычно обеспечивается браузерами. Версия Webkit, встроенная в AIR, не поддерживает XSLT. Итак, вам придется делать все это самостоятельно. Я нашел этот проект, позволяющий экспериментировать с запросами XPath в AS3. . Теперь синтаксический анализ шаблона и создание узла вам придется делать самостоятельно.

person dirkgently    schedule 22.02.2009