2009-07-21 10 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

は、XSLファイルが含まれてあなたのXMLの行は次のように何を求めていますか?私は、XMLの先頭に次の2行を追加しました:

<?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にコピーし、スタイルシート指示文を追加しました。おそらくあなたのツールチェインではちょうど何かだと思います。 –

+0

DNNレポートモジュールからXMLが吐き出され、ビルトインのXSLビジュアライゼーションを使用できるかどうかを確認しています。私はHTMLビジュアライザーを使って作業していますが、それは醜いです。あなたがDNNに精通していないなら、これはおそらくあなたにとって何の意味もありません。 :) – NJChim

関連する問題