2009-07-21 12 views
1

Ich habe jede Lösung versucht, die ich hier gefunden habe und sogar eine größere Google-Suche, aber nichts scheint zu funktionieren. Hier ist mein Problem ... Ich habe Daten in XML, die ich mit der Google Visualization API visualisieren möchte. Ich hatte gehofft, ich könnte einfach XSL verwenden, um das zu generieren, was ich brauche, anstatt irgendetwas mit Datenquellen zu tun (ich habe meine Gründe). Aber der JavaScript-Code wird nicht in meiner Ausgabe angezeigt. Ist das überhaupt möglich?Javascript mit xml und xsl generieren

Meine XML

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

Meine XSL-Datei

<?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> 

Mein Ausgang

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

Antwort

2

Was die Zeile in der XML tut, die die XSL-Datei aussehen enthält? Ich habe diese beiden Zeilen an die Spitze des XML:

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

Das Ergebnis war richtig, obwohl die Grafik nicht tatsächlich die Daten richtig zeigen. Es wurde zumindest angerufen. alt text http://i21.photobucket.com/albums/b296/Bonus_Eruptus/so/xml_chart.jpg

+0

Was ich eingefügt habe, ist genau, was die XML-Ausgabe, mit der ich arbeiten muss, aussieht. Dann rendert eine Komponente von Drittanbietern basierend auf dem XML und meiner XSL ... Es klingt, als müsste ich mich in den Renderer einarbeiten, um herauszufinden, was vor sich geht. Vielen Dank. – NJChim

+0

Welche 3rd-Party-Komponente, wenn Sie meine Frage nicht stört? Wie ich bereits erwähnt habe, habe ich Ihre Eingaben einfach in test.xml und test.xsl kopiert und die Stylesheet-Anweisung hinzugefügt. Das funktioniert, und Sie sind auf dem richtigen Weg. Ich denke, es ist wahrscheinlich nur etwas mit deiner Toolchain. –

+0

Es wird XML aus dem DNN-Berichtsmodul ausgegeben und ich sehe, ob ich die integrierte XSL-Visualisierung verwenden kann. Ich habe es mit dem HTML-Visualizer arbeiten, aber es ist hässlich. Und wenn Sie mit DNN nicht vertraut sind, dann bedeutet das wahrscheinlich nichts für Sie. :) – NJChim