2009-07-21 3 views
1

Я пробовал все предлагаемые мной решения и даже более крупный поиск Google, но ничего не работает. Вот моя проблема ... У меня есть данные, которые есть в XML, которые я хотел бы визуализировать с помощью API визуализации Google. Я надеялся, что могу просто использовать XSL для генерации того, что мне нужно, вместо того, чтобы делать что-либо с источниками данных (у меня есть причины). Но код javascript не отображается в моем выпуске. Возможно ли это?генерировать javascript с помощью xml и xsl

Мой XML

<DocumentElement> 
    <QueryResults> 
    <Year>2000</Year> 
    <Population>100000</Population> 
    </QueryResults> 
    <QueryResults> 
    <Year>2001</Year> 
    <Population>105000</Population> 
    </QueryResults> 
</DocumentElement> 

Мой XSL файл

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="html" encoding="utf-8"/> 
<xsl:template match="/"> 

    <script type="text/javascript" src="http://www.google.com/jsapi"></script>  
    <script type="text/javascript"> 
     google.load('visualization', '1', {packages:['barchart']}); 
     google.setOnLoadCallback(drawChart); 

     function drawChart() { 
      var data = new google.visualization.DataTable(); 

      data.addColumn('string', 'Year'); 
      data.addColumn('string', 'Population'); 
      data.addRows(2); // hard-coded for testing 

      <xsl:for-each select="DocumentElement/QueryResults"> 
       data.setValue(0, 0, '<xsl:value-of select="Year"/>'); 
       data.setValue(0, 1, '<xsl:value-of select="Population"/>');     
      </xsl:for-each> 

      var chart = new google.visualization.BarChart(document.getElementById('chart_div')); 
      chart.draw(data, {width: 400, height: 240, is3D: true, title: 'Population'}); 
     } 
    </script> 

    <div id="chart_div">&#160;</div> 

</xsl:template> 
</xsl:stylesheet> 

Мой выход

<!-- notice no javascript --> 
<div id="chart_div"> </div> 

ответ

2

Что делает строка в вашем XML, который включает в себя файл XSL выглядеть? Я добавил эти две строки в верхней части XML:

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="test.xsl"?> 

Результат был правильным, хотя граф не на самом деле показывают данные правильно. По крайней мере, он был вызван. alt text http://i21.photobucket.com/albums/b296/Bonus_Eruptus/so/xml_chart.jpg

+0

То, что я вставил, - это именно то, с чем я должен работать с результатом XML. Затем сторонний компонент отображает на основе XML и моего XSL ... Похоже, мне, возможно, придется копаться в рендерере, чтобы узнать, что происходит. Благодарю. – NJChim

+0

Какой сторонний компонент, если вы не возражаете против моего запроса? Как я уже упоминал, я просто скопировал ваши входы в test.xml и test.xsl и добавил директиву stylesheet, и он работает, поэтому вы на правильном пути. Я думаю, что это скорее всего что-то с вашей инструментальной цепочкой. –

+0

Это XML-вывод из модуля отчетов DNN, и я вижу, могу ли я использовать встроенную визуализацию XSL. У меня есть работа с использованием визуализатора HTML, но он уродлив. И если вы не знакомы с DNN, то это, вероятно, ничего не значит для вас. :) – NJChim

Смежные вопросы