Отображение XML-формата в формате XSL на элементе управления - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть файлы XML, отформатированные с помощью XSL. Они отлично смотрятся в IE.

Теперь, как мне сделать то же самое с Flex (не AIR)? Я хотел бы использовать что-то вроде TextArea, а не сетку данных.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 04 января 2011

Я нашел решение.

Вместо отображения XSL-примененного XML с всплывающим окном (например, с IE), я могу отобразить его во Flex с компонентом, найденным здесь:

http://code.google.com/p/flex-iframe/

0 голосов
/ 30 января 2018

Ниже приведен пример, и здесь важна строка ниже. Мы должны использовать функцию toXMLString () :

CBSPopup.showNotification("stavka : " + stavka.toXMLString());

Остальной код:

if(children.length() > 0){
                    var idPravila : String = _dataprovider.@IdPravila[0];
                    for each(var child:XML in children ) {
                        var stavka : XML = <entity name="PopustBenzinskeStanice" 
                                            SCCode={child.@SCCode[0]} 
                                            SubcompanyName={child.@SubcompanyName[0]} 
                                            SCCodeMedjusloj={child.@SCCodeMedjusloj[0]} 
                                            IdPravila={idPravila} 
                                        />;
                        CBSPopup.showNotification("stavka : " + stavka.toXMLString());
                        _dataprovider.appendChild(stavka);
                    }
                    //if (poslovneJediniceGrid.dataProvider == null) {
                        poslovneJediniceGrid.DataProvider  = _dataprovider.entity.(attribute("name") == "PopustBenzinskeStanice");
                    //}

                    poslovneJediniceGrid.dataProvider.refresh();
                }
0 голосов
/ 14 декабря 2010

Я думаю, что могу использовать JavaScript для преобразования. Поэтому мое приложение Flex передает URL-адреса XML и XSL в JavaScript. JavaScript выполняет преобразование XML-XSL. И он должен передать преобразованный HTML обратно во Flex, чтобы мое приложение Flex могло вызвать TextArea (или подобное) для его отображения.

Я думаю, что приближаюсь. Но проблема на данный момент в том, что преобразованный HTML кажется пустым или пустым. Есть идеи?

function loadXMLDoc(dname)
{
  if (window.XMLHttpRequest)
  {
    xhttp=new XMLHttpRequest();
  }
  else
  {
    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xhttp.open("GET",dname,false);
  xhttp.send("");
  return xhttp.responseXML;
}

function displayResult(xmlURL, xslURL) 
{
  //prepare xml and xsl
  xml=loadXMLDoc(xmlURL);
  xsl=loadXMLDoc(xslURL);

  //get flash
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  var flashName = "index";
  var flashObject = (isIE) ? window[flashName] : document[flashName];

  // code for IE
  if (window.ActiveXObject)
  {
    ex=xml.transformNode(xsl);
    flashObject.GetTransformedHTML(ex); 
  }
  // code for Mozilla, Firefox, Opera, etc.
  else if (document.implementation && document.implementation.createDocument)
  {
    xsltProcessor=new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);
    resultDocument = xsltProcessor.transformToFragment(xml,document);
    document.getElementById("example").appendChild(resultDocument);
  }
}

Спасибо.

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