2009-07-21 100 views
1

我已經嘗試了我在這裏找到的每個解決方案,甚至更大的Google搜索,但似乎沒有任何工作。這是我的問題...我有使用Google Visualization API可視化的XML數據。我希望我可以簡單地使用XSL來生成我所需要的,而不是對數據源做任何事情(我有我的理由)。但是,JavaScript代碼不會顯示在我的輸出中。這甚至有可能嗎?使用xml和xsl生成JavaScript

我的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 2009-07-21 18:12:41